在添加外键时,我使用的是
ALTER TABLE grade ADD CONSTRAINT fk_grade_id FOREIGN KEY (qid) REFERENCES question(qid);
但是要去掉外键,我用的就是这个
ALTER TABLE article DROP foreign key fk_grade_id;
为什么?
rdlzhqv91#
这是因为您选择这样使用altertable。正如mysql关于alter table的文档所说,如果您添加外键,那么constraint子句的使用是可选的:添加[constraint[symbol]]外键[index\u name](index\u col\u name,…)有多种约束类型,而不仅仅是外键,使用constraint子句可以应用一致的命名约定。但是当您删除外键时,这不是必需的,您只需通过它的名称来引用它。另外,不管出于什么原因,mysql都忽略了 index_name 在 alter table ,但使用 symbol 用于命名索引。
index_name
alter table
symbol
1条答案
按热度按时间rdlzhqv91#
这是因为您选择这样使用altertable。
正如mysql关于alter table的文档所说,如果您添加外键,那么constraint子句的使用是可选的:
添加[constraint[symbol]]外键[index\u name](index\u col\u name,…)
有多种约束类型,而不仅仅是外键,使用constraint子句可以应用一致的命名约定。但是当您删除外键时,这不是必需的,您只需通过它的名称来引用它。
另外,不管出于什么原因,mysql都忽略了
index_name
在alter table
,但使用symbol
用于命名索引。