CREATE TABLE期间的MySQL错误150

时间:2009-11-06 11:57:23

标签: mysql mysql-error-1005

我有一个名为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)..

这是什么?我无法辨别我的错误。请帮我解决这个问题。提前谢谢。

3 个答案:

答案 0 :(得分:3)

外键的类型必须与引用的键相同。将表tbl_groupmanager上的tgm_groupid更改为int(10)unsigned,它将起作用。

答案 1 :(得分:0)

最有可能的是,MyISAM是您数据库中的默认引擎,因此tbl_groupmasterMyISAM

MyISAM不支持外键。

答案 2 :(得分:0)

您的外键与它引用的主键的数据类型不同。一个是未签名的,一个不是。