Что такое index_name и CONSTRAINT [symbol]

273
30 марта 2018, 10:16

В документации MySQL предоставлен вот такой шаблон:

[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 | SET DEFAULT

Вопросы следующие:

  1. Что означает CONSTRAINT [symbol] и в каких случаях используется?

  2. Что означает [index_name] и в каких случаях используется?

Answer 1
  1. CONSTRAINT - название вашего ограничения. В данном случае, это имя для внешнего ключа. Пригодится, если вы, к примеру, захотите удалить это ограничение. Без указания имени система автоматически назначит имя.
  2. Это наименование индекса. Если не задавать, имя будет сгенерировано системой. Используется для быстрого извлечения данных. Выборка по первичным и внешним ключам быстрая за счёт этих индексов. Про индексы можно почитать тут.
READ ALSO
Не сохраняется запись в БД

Не сохраняется запись в БД

Здравствуйте, возникла проблемка при записи данных в БДНе могу понять, где проблема, в записи или в сохранении

217
Простой запрос mySql

Простой запрос mySql

Здравствуйте! Есть запрос

208
PHPMYADMIN. Как проверить на дубликат при импорте CSV?

PHPMYADMIN. Как проверить на дубликат при импорте CSV?

Добрый день! Подскажите пожалуйстаЯ импортирую через phpmyadmin csv файл

198
Валидация данных в коде приложения или в базе данных

Валидация данных в коде приложения или в базе данных

Если в колонку с типом CHAR(50) вставить строку, длина которой превышает 50 символов, то MySQL вернёт ошибку

204