我怀疑下面的表语句我做错了什么:
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;
答案 0 :(得分:0)
您无法将外键关系添加到任何列。它需要有一个索引。 最简单的方法是:
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)
);