错误在MySQL上创建声明

我有一个疑问,我在做什么毛病如下表声明:错误在MySQL上创建声明

的MySQL返回错误150

DROP table usuario; 

DROP table MiTabla;

CREATE TABLE usuario(

id smallint unsigned auto_increment primary key,

name varchar(20) not null

)ENGINE=InnoDB;

Insert into usuario (NAME) VALUES ('Antonio'),('Jose'),('Manuel');

CREATE TABLE MiTabla(

id smallint unsigned auto_increment primary key,

name varchar(20) not null,

foreign key (name) REFERENCES usuario (name)

) ENGINE = InnoDB;

回答:

您不能添加一个外键关系,只是任何柱。它需要有一个索引。该最简单方法是:

CREATE TABLE usuario (

id smallint unsigned auto_increment primary key,

name varchar(20) not null unique

);

然而,正确的方法是使用主键的关系:

CREATE TABLE MiTabla(

id smallint unsigned auto_increment primary key,

usuario_id smalling unsigned not null,

foreign key (usuario_id) REFERENCES usuario(id)

);

以上是 错误在MySQL上创建声明 的全部内容, 来源链接: utcz.com/qa/263672.html

回到顶部