[英]Error Code: 3175. Cannot create index on virtual column whose base column has foreign constraint
在MySQL 5.7.11中,在其中一個列是虛擬生成的列的地方添加復合索引會導致以下錯誤:
錯誤代碼:3175。無法在其基礎列具有外部約束的虛擬列上創建索引
實際上,從中生成虛擬列的基本列沒有任何外部約束,因此錯誤消息是無法解釋的。
在MySQL 5.7.15中不會發生該錯誤。
錯誤消息是錯誤的。 實際的問題是索引中的其他兩個列具有在其上定義的外鍵,這些外鍵被設置為on update cascade
。 在MySQL 5.7.14之前不允許這樣做:
在MySQL 5.7.13和更早版本中,InnoDB不允許在顯式包含在虛擬索引中的非虛擬外鍵列上定義級聯引用操作。 在MySQL 5.7.14中取消了此限制。 ( 來源 )
將密鑰更改為on update restrict
可使錯誤消失。 這也解釋了為什么在MySQL 5.7.15中不會發生此錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.