创建语句的 MySQL 错误
Error in MySQL on create statement
我怀疑我在以下 table 声明中做错了什么:
MySQL returns 错误 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)
);
我怀疑我在以下 table 声明中做错了什么:
MySQL returns 错误 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)
);