当引用的表实际上是视图时,我可以在MYSQL中添加外键约束吗?
基于以下内容,我可能想知道表格和视图被视为不同的格式https://stackoverflow.com/a/31183407/1342636
对我来说这是不允许的,但我还没有看到任何实际上说它被禁止的内容。
答案 0 :(得分:19)
对于要定义为foreign key
的字段,引用的父字段必须在其上定义索引。
根据foreign key
constraints上的文档:
REFERENCES parent_tbl_name(index_col_name,...)
由于VIEW是虚拟表,因此其所有字段也都是虚拟的
虚拟字段不支持定义index
。
根据Restrictions on Views
上的文档:
无法在视图上创建索引。
因此,您无法使用虚拟表(即视图)作为引用的父表(不支持索引)来定义和映射外键以创建子表。
示例强>: