3

我有一张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使用外键关系创建另一个带有 name 的表:

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' (errno: 150)..

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

4

3 回答 3

3

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

于 2009-11-06T12:19:46.597 回答
0

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

MyISAM不支持外键。

于 2009-11-06T12:08:44.210 回答
0

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

于 2009-11-06T12:19:09.497 回答