为什么我们需要约束关键字来添加外键,而不是删除外键?

raogr8fs  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(297)

在添加外键时,我使用的是

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

但是要去掉外键,我用的就是这个

ALTER TABLE article DROP foreign key fk_grade_id;

为什么?

rdlzhqv9

rdlzhqv91#

这是因为您选择这样使用altertable。
正如mysql关于alter table的文档所说,如果您添加外键,那么constraint子句的使用是可选的:
添加[constraint[symbol]]外键[index\u name](index\u col\u name,…)
有多种约束类型,而不仅仅是外键,使用constraint子句可以应用一致的命名约定。但是当您删除外键时,这不是必需的,您只需通过它的名称来引用它。
另外,不管出于什么原因,mysql都忽略了 index_namealter table ,但使用 symbol 用于命名索引。

相关问题