创建表期间 MySQL 错误 150

发布于 2024-08-11 02:31:43 字数 894 浏览 6 评论 0原文

我有一个使用 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 技术交流群。

扫码二维码加入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.

旧竹 2024-08-18 02:31:44

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

MyISAM 不支持外键。

Most probably, MyISAM is default engine in your database and hence tbl_groupmaster is MyISAM.

MyISAM does not support foreign keys.

好久不见√ 2024-08-18 02:31:44

您的外键与其引用的主键的数据类型不同。一张没有签名,一张没有。

Your foreign key is not the same datatype as the primary key it references. One is unsigned, one isn't.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文