给定具有PK列p
的父表id
和具有PK列c
和foo
的子表bar
。 c
。foo
引用p
。id
。
c
。foo
上创建索引吗?c
。bar
不存在怎么办?答案 0 :(得分:1)
唯一严格的要求是在父表上; documentation说:
通常,外键约束的父键是父表的主键。如果它们不是主键,则父键列必须共同受UNIQUE约束或具有UNIQUE索引。
子表没有这样的要求。但是,有时会在子表中搜索特定的键值(例如,删除父行时),所以
应在每个外键约束的子键列上创建索引。
如果foo
列是索引中的第一列,则索引可用于有效搜索foo
中的值。 (显式和隐式(PK)指数之间没有区别。)