Почему нам нужно ключевое слово ограничения для добавления внешнего ключа, а не во время удаления внешнего ключа?

0

При добавлении внешнего ключа это то, что я использую

ALTER TABLE grade ADD CONSTRAINT fk_grade_id FOREIGN KEY (qid) REFERENCES question(qid);

Но, чтобы отказаться от внешнего ключа, это то, что я использую

ALTER TABLE article DROP foreign key fk_grade_id;

Это почему?

Теги:

1 ответ

1
Лучший ответ

Это потому, что вы решили использовать таблицу alter так.

Как говорит в документации mysql в таблице alter, использование предложения ограничения необязательно, если вы добавляете внешний ключ:

ADD [CONSTRAINT [symbol]] FOREIGN KEY [имя_индекса] (index_col_name,...)

Существует несколько типов ограничений, а не только внешние ключи, используя предложение ограничения, которое вы можете применить к последовательному соглашению об именах. Но это не требуется, когда вы бросаете внешний ключ, вы просто ссылаетесь на него по его имени.

Кроме того, по какой-либо причине mysql игнорирует index_name в alter table, но использует symbol для обозначения индекса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню