请告诉我,我应该给外键命名吗?
CONSTRAINT constraint_name
FOREIGN KEY foreign_key_name (columns)
REFERENCES parent_table(columns)
ON DELETE action
ON UPDATE action
我可以通过它的名字对约束进行一些操作,但我能用外键名做什么?请给我一些例子。
答案 0 :(得分:1)
答案 1 :(得分:1)
正如文档所述:
MySQL需要外键和引用键的索引才能这样做 外键检查可以很快,不需要表扫描。 在 引用表时,必须有一个索引所在的外键 列被列为相同顺序的第一列。这样的 如果不是,则会自动在引用表上创建索引 存在。如果您创建,可能会稍后以静默方式删除此索引 另一个可用于强制执行外键约束的索引。 如果给定,则使用index_name,如前所述。
换句话说,您提供的不是“外键名称”,而是“(外键)索引名称”。
拥有索引名称对于跟踪该索引非常有用。
说实话,我不提供这样的名字。我宁愿在外键上明确声明一个索引,而不是让数据库为我做。
(注意:大多数数据库在声明外键时不会自动创建索引。)