// tbl_gw已创建,但是当我尝试创建tbl_node时,它显示错误
ERROR 1005 (HY000): Can't create table 'ss.tbl_node' (errno: 150)
我的sql如下:
CREATE TABLE tbl_gw(id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,gid varchar(24),vid varchar(24),primary key(id));
CREATE TABLE tbl_node(nid SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, gid int(10),primary key(nid) ,FOREIGN KEY (gid) REFERENCES tbl_gw(gid)) ENGINE=INNODB;
答案 0 :(得分:0)
外键的数据类型和指向它的键应该是相同的。
在你的情况下
CREATE TABLE tbl_gw(id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,gid varchar(24),vid varchar(24),主键(id));
CREATE TABLE tbl_node(nid SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, gid int(10),主键(nid),FOREIGN KEY(gid)参考 tbl_gw(gid))ENGINE = INNODB;
gid在表tbl_gw中的类型为varchar,与table tbl_node中的int类型不同
使任何一种类型与其他类型相同,并且它将起作用