【发布时间】:2015-09-29 04:06:41
【问题描述】:
当引用的表实际上是视图时,我可以在MYSQL中添加外键约束吗?
基于以下内容,我可能想知道表格和视图被认为是不同的格式https://stackoverflow.com/a/31183407/1342636
在我看来这是不允许的,但我没有看到任何实际声明它是不允许的。
【问题讨论】:
标签: mysql view foreign-keys constraints
当引用的表实际上是视图时,我可以在MYSQL中添加外键约束吗?
基于以下内容,我可能想知道表格和视图被认为是不同的格式https://stackoverflow.com/a/31183407/1342636
在我看来这是不允许的,但我没有看到任何实际声明它是不允许的。
【问题讨论】:
标签: mysql view foreign-keys constraints
对于要定义为foreign key 的字段,所引用的父字段必须具有定义的索引。
根据foreign key constraints 上的文档:
REFERENCES parent_tbl_name (index_col_name,...)
由于 VIEW 是虚拟表,因此它的所有字段也是虚拟的。
virtual 字段不支持定义index。
根据Restrictions on Views 上的文档:
无法在视图上创建索引。
因此您不能使用虚拟表(即视图)作为引用的父表(不支持索引)来定义和映射外键来创建子表。
示例:
【讨论】: