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