2009-11-06 128 views
3

我与SQL创建的名称tbl_groupmaster一个表,如下图所示:MySQL错误150在CREATE TABLE

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 Error: Can't create table '.\student\tbl_groupmanager.frm' (errno: 150)..

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

回答

0

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

MyISAM不支持外键。

+0

嗨, 我改成InnoDB,然后只创建..所以我相信没有pbm与..任何其他suggesstions ?? – Senthil 2009-11-06 12:14:55

0

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

3

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

+0

嘿Thanx ...你是对的..它的工作...伟大的工作... – Senthil 2009-11-06 12:23:35

+0

不客气:) – 2009-11-06 12:26:37

+0

嘿,记得接受这个问题:) – 2009-11-06 12:35:36