При добавлении внешнего ключа это то, что я использую
ALTER TABLE grade ADD CONSTRAINT fk_grade_id FOREIGN KEY (qid) REFERENCES question(qid);
Но, чтобы отказаться от внешнего ключа, это то, что я использую
ALTER TABLE article DROP foreign key fk_grade_id;
Это почему?
Это потому, что вы решили использовать таблицу alter так.
Как говорит в документации mysql в таблице alter, использование предложения ограничения необязательно, если вы добавляете внешний ключ:
ADD [CONSTRAINT [symbol]] FOREIGN KEY [имя_индекса] (index_col_name,...)
Существует несколько типов ограничений, а не только внешние ключи, используя предложение ограничения, которое вы можете применить к последовательному соглашению об именах. Но это не требуется, когда вы бросаете внешний ключ, вы просто ссылаетесь на него по его имени.
Кроме того, по какой-либо причине mysql игнорирует index_name
в alter table
, но использует symbol
для обозначения индекса.