创建表期间 MySQL 错误 150
我有一个使用 SQL 创建的名为 tbl_groupmaster
的表,如下所示:
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' (errno: 150)..
这是什么?我无法识别自己的错误。请帮我解决这个问题。提前致谢。
I have one table with name tbl_groupmaster
created with SQL as shown below:
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)
)
and I am creating one more table with name tbl_groupmanager
, using a foreign key relationship:
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;
But I am getting this error:
SQL Error: Can't create table '.\student\tbl_groupmanager.frm' (errno: 150)..
What is this? I am unable to identify my mistake. Please help me to resolve this. Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
外键的类型必须与引用的键相同。将表 tbl_groupmanager 上的 tgm_groupid 更改为 int(10) unsigned 并且它将起作用。
The type of the foreign key has to be the same as the referenced key. Change tgm_groupid on table tbl_groupmanager to int(10) unsigned and it will work.
最有可能的是,
MyISAM
是数据库中的默认引擎,因此tbl_groupmaster
是MyISAM
。MyISAM
不支持外键。Most probably,
MyISAM
is default engine in your database and hencetbl_groupmaster
isMyISAM
.MyISAM
does not support foreign keys.您的外键与其引用的主键的数据类型不同。一张没有签名,一张没有。
Your foreign key is not the same datatype as the primary key it references. One is unsigned, one isn't.