当前位置: 首页 > 面试题库 >

#1005-无法创建表“ table_name”(错误号:150)

谷奕
2023-03-14
问题内容

这是我的桌子:

DROP TABLE IF EXISTS `tbl_comments`;
CREATE TABLE IF NOT EXISTS `tbl_comments` (
  `id` int(11) NOT NULL auto_increment,
  `topic_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `text` text NOT NULL,
  `create_dt` datetime NOT NULL,
  `update_dt` timestamp NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`),
  KEY `topic_id_2` (`topic_id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `tbl_comments_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `tbl_users` (`id`),
  CONSTRAINT `tbl_comments_ibfk_1` FOREIGN KEY (`topic_id`) REFERENCES `tbl_topics` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `tbl_users`;
CREATE TABLE IF NOT EXISTS `tbl_users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(20) NOT NULL default '',
  `password` varchar(128) NOT NULL default '',
  `email` varchar(128) NOT NULL default '',
  `activkey` varchar(128) NOT NULL default '',
  `superuser` int(1) NOT NULL default '0',
  `status` int(1) NOT NULL default '0',
  `create_at` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `lastvisit_at` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `user_username` (`username`),
  UNIQUE KEY `user_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `tbl_topics`;
CREATE TABLE IF NOT EXISTS `tbl_topics` (
  `id` int(11) NOT NULL auto_increment,
  `group_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `header` varchar(255) NOT NULL,
  `text` text NOT NULL,
  `create_dt` datetime NOT NULL,
  `update_dt` timestamp NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`),
  KEY `user_id` (`user_id`),
  KEY `group_id` (`group_id`),
  CONSTRAINT `tbl_topics_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `tbl_groups` (`id`),
  CONSTRAINT `tbl_topics_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `tbl_users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

现在,当我尝试导入时出现错误:#1005-无法创建表’kobeco_yii.tbl_comments’(错误号:150)(详细信息:Percona-
XtraDB,支持事务,行级锁定和外键)


问题答案:

您正在尝试tbl_comments在其他表之前创建。tbl_comments需要表tbl_userstbl_topics用于外键约束。

尝试将CREATE TABLEfortbl_comments移至其他下方。



 类似资料:
  • 问题内容: 尝试在mysql中创建表时出现错误。 有解决的技巧吗? 错误: 问题答案: 查看有关外键约束的MySQL手册: 如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些条件,MySQL将返回错误号1005,并在错误消息中引用错误150。 一些想法: 最好删除表,并使用格式正确的语法对其进行新建

  • 问题内容: 我在Internet上搜索了此问题的解决方案,并检查了Stack Overflow问题,但是没有一种解决方案适合我的情况。 我想创建一个从表sira_no到metal_kod的外键。 该脚本返回: 我尝试将索引添加到被引用的表中: 我在两个表(字符集和排序规则)上都检查了METAL_KODU,但找不到该问题的解决方案。我该如何解决这个问题? 这是metal_kod表: 问题答案: 错误

  • 问题内容: 我将我的MySQL数据库插入WAMP服务器时遇到了麻烦。我打算发布模式的图像,但这是我不能的第一篇文章。 下面是执行的脚本。 但是然后我得到这个错误: 我不知道为什么。谁能帮我? 问题答案: 我迅速搜寻了你,它把我带到了这里。我引用: 如果您尝试添加名称已经在其他地方使用的约束,则会收到此消息 要检查约束,请使用以下SQL查询: 在此处查找更多信息,或尝试查看错误发生的位置。看起来像是

  • 问题内容: 我当时正在数据库中创建一些表,但是每次我以errno 150结束有关外键的工作时。首先,这是我创建表的代码: 这些是我得到的错误: 我跑了,给出了更详细的错误描述: 我在StackOverflow和其他在线位置上进行了搜索- 在这里找到了一篇有用的博客文章,其中提供了有关如何解决此错误的指针 -但我无法弄清楚出了什么问题。任何帮助,将不胜感激! 问题答案: 您应该将car_id设置为汽

  • 问题内容: 本质上,我和这个家伙有同样的问题,要减去表前缀。因为我没有表前缀,所以他的修复不起作用。http://forums.laravel.com/viewtopic.php?id=972 我正在尝试使用Laravel的Schema Builder来构建表,如下所示: 问题是,当我运行此代码(在/ setup路由中)时,出现以下错误: 基于网络上的帖子以及有关如何 设置 Laravel口才关系