在添加外键时,这就是我使用的
ALTER TABLE grade ADD CONSTRAINT fk_grade_id FOREIGN KEY (qid) REFERENCES question(qid);
但是要删除外键,这就是我使用的
ALTER TABLE article DROP foreign key fk_grade_id;
这是为什么?
最佳答案
那是因为您选择以这种方式使用 alter table。
如 mysql 的文档 alter table也就是说,如果添加外键,则约束子句的使用是可选的:
ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...)
有多种约束类型,而不仅仅是外键,使用约束子句可以应用一致的命名约定。但是,当您删除外键时,这不是必需的,您只需通过其名称引用它即可。
此外,无论出于何种原因,mysql都会忽略alter table
中的index_name
,而是使用symbol
来命名索引。
关于mysql - 为什么添加外键时需要约束关键字,而删除外键时不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51003806/