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

时间:2012-10-17 14:00:26

标签: mysql sql yii

这是我的表格:

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,支持事务,行级锁定和外键)

2 个答案:

答案 0 :(得分:4)

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

尝试将CREATE TABLE的{​​{1}}移至其他人的下方。

答案 1 :(得分:1)

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

首先创建table_usrtable_topics