[英]MySQL InnoDB Foreign Key Problems
我有下面的表,我試圖在MySQL中運行它們,但我不斷得到errno150。只是不確定為什么,但是MySQL似乎無法創建外鍵約束。 我已經看過為InnoDB設置FK的規則,一切似乎都還可以。 有人可以借給我另一套眼睛和專業知識嗎?
-- Table publication_type (parent table)
CREATE TABLE publication_type (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
publication_type varchar(55) NOT NULL,
tstamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT publication_type_pk PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
-- Table publication (child table)
CREATE TABLE publication (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
authors varchar(255) NOT NULL,
publication_title varchar(100) NOT NULL,
publication_type_id int(11) UNSIGNED NOT NULL,
user_id int(11) UNSIGNED NOT NULL,
CONSTRAINT publication_pk PRIMARY KEY (id),
CONSTRAINT publication_type_fk FOREIGN KEY (publication_type_id) REFERENCES publication_type(id) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
類型不匹配:
publication_type.id
的類型為int UNSIGNED
publication.publication_type_id
的類型為int
另請參閱文檔: http : //dev.mysql.com/doc/refman/5.1/en/create-table-foreign-keys.html ,特別是:
外鍵和引用鍵中的對應列必須具有相似的數據類型。 整數類型的大小和符號必須相同 。 字符串類型的長度不必相同。 對於非二進制(字符)字符串列,字符集和排序規則必須相同。
強調我的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.