2016-06-29 4 views

ответ

2

Как MySQL руководство по foreign keys indicates, то CONSTRAINT symbol_name часть синтаксиса ограничений не является обязательным:

[CONSTRAINT [symbol]] FOREIGN KEY 
[index_name] (index_col_name, ...) 
REFERENCES tbl_name (index_col_name,...) 
[ON DELETE reference_option] 
[ON UPDATE reference_option] 

reference_option: 
    RESTRICT | CASCADE | SET NULL | NO ACTION 

Разница в наименовании внешнего ключа. Как выше связанный документ описывает:

В противном случае MySQL неявно создает внешний ключ индекса, который называется в соответствии со следующими правилами:

• Если определено, используется значение символа CONSTRAINT. В противном случае используется значение index_name FOREIGN KEY.

• Если не указан ни символ CONSTRAINT, ни индекс FOREIGN KEY index_name, , то имя индекса внешнего ключа создается с использованием имени столбца внешнего ключа ключа .

1

С предложением CONSTRAINT вы можете определить имя ограничения для ограничения внешнего ключа. Если отсутствующий MySQL будет генерировать имя автоматически.