错误在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