這讓我流汗 - 當我嘗試在mySQL中創建一個表時,出現錯誤150。我搜索了論壇無濟於事。該語句使用外鍵約束 - 兩個表都是InnoDB,所有相關的列都具有相同的數據類型,並且兩個表都具有相同的字符集和歸類。以下是正在引用的表的CREATE TABLE和原始CREATE TABLE語句。有任何想法嗎?錯誤沒有150 mySQL
新表:
CREATE TABLE `approval` (
`rev_id` int(10) UNSIGNED NOT NULL,
`rev_page` int(10) UNSIGNED NOT NULL,
`user_id` int(10) UNSIGNED NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`rev_id`,`rev_page`,`user_id`),
KEY `FK_approval_user` (`user_id`),
CONSTRAINT `FK_approval_revision` FOREIGN KEY (`rev_id`, `rev_page`) REFERENCES `revision` (`rev_id`, `rev_page`),
CONSTRAINT `FK_approval_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
參考表:
CREATE TABLE `revision` (
`rev_id` int(10) unsigned NOT NULL auto_increment,
`rev_page` int(10) unsigned NOT NULL,
`rev_text_id` int(10) unsigned NOT NULL,
`rev_comment` tinyblob NOT NULL,
`rev_user` int(10) unsigned NOT NULL default '0',
`rev_user_text` varbinary(255) NOT NULL default '',
`rev_timestamp` binary(14) NOT NULL default '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
`rev_minor_edit` tinyint(3) unsigned NOT NULL default '0',
`rev_deleted` tinyint(3) unsigned NOT NULL default '0',
`rev_len` int(10) unsigned default NULL,
`rev_parent_id` int(10) unsigned default NULL,
PRIMARY KEY (`rev_id`),
UNIQUE KEY `rev_page_id` (`rev_page`,`rev_id`),
KEY `rev_timestamp` (`rev_timestamp`),
KEY `page_timestamp` (`rev_page`,`rev_timestamp`),
KEY `user_timestamp` (`rev_user`,`rev_timestamp`),
KEY `usertext_timestamp` (`rev_user_text`,`rev_timestamp`)
) ENGINE=InnoDB AUTO_INCREMENT=4904 DEFAULT CHARSET=binary MAX_ROWS=10000000 AVG_ROW_LENGTH=1024;
你確實是有CREATE TABLE權限,對吧? – Matchu 2010-06-03 15:03:54