ERROR 1005(HY000):无法创建表's.tbl_node'(错误号:150)

时间:2014-09-30 09:21:43

标签: mysql

// 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;

1 个答案:

答案 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类型不同

使任何一种类型与其他类型相同,并且它将起作用