3

ここに私のテーブルがあります:

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' を作成できません (errno: 150) (詳細: Percona-XtraDB、トランザクション、行レベルのロック、および外部キーをサポート)

4

2 に答える 2

4

tbl_comments他のテーブルの前に作成しようとしています。tbl_commentsテーブルtbl_userstbl_topics外部キー制約が必要です。

CREATE TABLEforを他のものの下に移動してみてくださいtbl_comments

于 2012-10-17T14:03:08.590 に答える
1

最初のテーブル ( table_commets) には、まだ存在しないテーブルに対する制約があります。これは、それらをその順序で作成しているという問題である可能性があります。

作成table_usrし、table_topics最初に。

于 2012-10-17T14:02:04.347 に答える