#1005 -无法创建表“table_name”(errno: 150)

时间:2022-04-27 20:44:16

here is my tables:

这是我的表:

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;

now i have the error when i try to import: #1005 - Can't create table 'kobeco_yii.tbl_comments' (errno: 150) (Details: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys )

现在,当我尝试导入:#1005 -无法创建“kobeco_yii”表时出现了错误。tbl_comments' (errno: 150)(详细信息:percon - xtradb,支持事务、行级锁和外键)

2 个解决方案

#1


4  

You're trying to create tbl_comments before your other tables. tbl_comments requires tables tbl_users and tbl_topics for foreign key constraints.

您试图在其他表之前创建tbl_comments。tbl_comments需要表tbl_users和tbl_topic作为外键约束。

Try moving the CREATE TABLE for tbl_comments to below the others.

尝试将tbl_comments的创建表移动到其他表的下面。

#2


1  

Your first table (table_commets) has constraints to tables that doesn't exist yet. This may be an issue of you are creating them in that order.

第一个表(table_commets)对尚未存在的表具有约束。这可能是你按照这个顺序创建的问题。

Create table_usr and table_topics first.

首先创建table_usr和table_topic。

#1


4  

You're trying to create tbl_comments before your other tables. tbl_comments requires tables tbl_users and tbl_topics for foreign key constraints.

您试图在其他表之前创建tbl_comments。tbl_comments需要表tbl_users和tbl_topic作为外键约束。

Try moving the CREATE TABLE for tbl_comments to below the others.

尝试将tbl_comments的创建表移动到其他表的下面。

#2


1  

Your first table (table_commets) has constraints to tables that doesn't exist yet. This may be an issue of you are creating them in that order.

第一个表(table_commets)对尚未存在的表具有约束。这可能是你按照这个顺序创建的问题。

Create table_usr and table_topics first.

首先创建table_usr和table_topic。