本文介紹了MySQL添加引用視圖的外鍵約束的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
當被引用的表實際上是一個視圖時,我是否可以在MySQL中添加外鍵約束?
基于以下原因,我可能會覺得奇怪,表和視圖被視為不同的格式https://stackoverflow.com/a/31183407/1342636
在我看來這是不允許的,但我還沒有看到任何實際聲明它是不允許的。
推薦答案
要將字段定義為foreign key
,引用的父字段必須定義有索引。
根據foreign key
constraints上的文檔:
引用PARENT_Tbl_NAME(INDEX_COL_NAME,…)
由于視圖是虛擬的表,所以它的所有字段也都是虛擬的。
虛擬字段不支持定義index
。
根據Restrictions on Views
上的文檔:
無法在視圖上創建索引。
,因此您不能使用虛表(即view)作為引用的父表(不支持索引)來定義和映射外鍵以創建子表。
示例:
這篇關于MySQL添加引用視圖的外鍵約束的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,