簡體   English   中英

MySQL InnoDB外鍵問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM