【问题标题】:#1005 - Can't create table 'table_name' (errno: 150)#1005 - 无法创建表 'table_name' (errno: 150)
【发布时间】:2012-10-07 19:33:15
【问题描述】:

这是我的桌子:

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_cmets' (errno: 150) (详细信息:Percona-XtraDB,支持事务、行级锁定和外键)

【问题讨论】:

  • 您使用的用户是否有权在该数据库中创建表?

标签: mysql sql yii


【解决方案1】:

您的第一个表 (table_commets) 对尚不存在的表有约束。这可能是您按该顺序创建它们的问题。

首先创建table_usrtable_topics

【讨论】:

    【解决方案2】:

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

    尝试将CREATE TABLEtbl_comments 移动到其他人的下方。

    【讨论】:

    • 难以置信。一个小时后,我尝试了不同的解决方案,而关于这个错误的问题中没有提到这个解决方案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2017-04-09
    • 2016-10-12
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多