我有一个名为tbl_groupmaster
的表,用SQL创建,如下所示:
create table tbl_groupmaster (
tgm_groupid int(10) unsigned NOT NULL auto_increment,
tgm_groupname varchar(50),
tgm_groupdescription varchar(50),
PRIMARY KEY (tgm_groupid)
)
我正在创建一个名为tbl_groupmanager
的表,使用外键关系:
create table tbl_groupmanager (
tgmgr_groupmangerid int(10) NOT NULL,
tgm_groupid int(10),
UserNamesID int(10),
tgmgr_groupsize int(10),
tgmgr_groupassigned_date datetime,
tgmgr_grouplead_status enum ('active','inactive'),
PRIMARY KEY (tgmgr_groupmangerid),
FOREIGN KEY (tgm_groupid) REFERENCES tbl_groupmaster(tgm_groupid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
但是我收到了这个错误:
这是什么?我无法辨别我的错误。请帮我解决这个问题。提前谢谢。SQL错误:无法创建表'。\ student \ tbl_groupmanager.frm'(错误号:150)..
答案 0 :(得分:3)
外键的类型必须与引用的键相同。将表tbl_groupmanager上的tgm_groupid更改为int(10)unsigned,它将起作用。
答案 1 :(得分:0)
最有可能的是,MyISAM
是您数据库中的默认引擎,因此tbl_groupmaster
为MyISAM
。
MyISAM
不支持外键。
答案 2 :(得分:0)
您的外键与它引用的主键的数据类型不同。一个是未签名的,一个不是。