【发布时间】:2018-10-11 00:31:30
【问题描述】:
我试图了解以这种方式创建 FOREIGN KEY 之间的区别:
CREATE TABLE child(
id_child INT NOT NULL,
id_parent INT
FOREIGN KEY(id_parent) REFERENCES parent(id_parent));
而不是这个:
CREATE TABLE child(
id_child INT NOT NULL,
id_parent INT
CONSTRAINT FK_id_parent FOREIGN KEY(id_parent) REFERENCES parent(id_parent));
如果我使用第一种形式,它无论如何都会创建一个CONSTRAINT(Innodb 索引,或者我错了吗?没有关于索引的说明)。那么,有什么需要明确声明CONSTRAINT 或者没有理由这样做?
【问题讨论】:
-
从官方语法文档here 的外观来看,
CONSTRAINT是可选的,只有在您想(可选)命名约束时才需要。据我记得,命名约束的主要好处是更容易管理(即以后更容易删除)。
标签: mysql database foreign-keys constraints mysql-workbench