mysql乾貨——MySQL 1215錯誤 外鍵創建失敗

mysql乾貨——MySQL 1215錯誤 外鍵創建失敗

  在mysql創建表時,經常會創建失敗,其中建立外鍵(foregin key)時有很多細節需要我們去留意,主要有以下幾種原因,1。兩個字段的類型或大小嚴格不匹配。例如,如果一個是int(10),那麼外鍵也必須設置成int(10),而不是int(11),也不能是tinyint。另外,你還必須確定兩個字段是否都爲signed或者unsigned,這兩字段必須嚴格地一致匹配。
  2. 設置外鍵的字段沒有建立起索引,或者不是一個primary key(主鍵)。一般,需要建立外鍵的數據表稱爲子表,而相關聯的數據表稱爲父表。建立外鍵時所對應的父表的字段必須要創建索引primary key。
  3. 其中一個或者兩個表是MyISAM引擎的表。若想要使用外鍵約束,表必須是InnoDB引擎(實際上,如果兩個表都是MyISAM 引擎的,這個錯誤根本不會發生,但也不會產生外鍵,只會建立索引)你需要檢查表的引擎類型。
  4. 外鍵的名字不能重複。檢查該數據庫確保外健名字是唯一的,或者你可以在鍵名後面加上幾個隨機的字符以測試是否爲此原因。
  5. 設置了ON DELETE SET NULL,但是相關的鍵的字段設置成了NOT NULL值。通過修改外鍵的屬性值或者把字段屬性設置成allow null來解決。
  6. 確保你的Charset和Collate選項在表級和字段級上的一致。
  7. 兩字段設置的默認值不一致。一個字段設置default爲0,一個設置default爲null,也是不可行的。
  8. ALTER聲明中有語法錯誤。
  文章來自:https://www.itjmd.com/news/show-3228.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章