外键的“约束符号”和“索引名称”之间的区别

top*_*erg 5 mysql constraints foreign-keys definition

MySQL在Alter Table命令中添加外键的语法如下:

ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...)
Run Code Online (Sandbox Code Playgroud)

CONSTRAINT symbol和 之间有什么区别index_name。据我所知,它们都是命名外键的方法,但我认为一定有更多的区别,谁能启发我?

Dev*_*art 6

[ symbol ]是一个约束名称,如果指定,MySQL 将创建名为[symbol] 的外键和索引;在这种情况下,[index_name]被忽略。

第二个[index_name]是索引名称。该索引是自动创建的。如果省略[symbol],则外键将由服务器命名,索引将命名为[index_name]