mysql - 为什么添加外键时需要约束关键字,而删除外键时不需要?

标签 mysql

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

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/

相关文章:

sql - MySQL 错误 : ON DUPLICATE KEY UPDATE, 列计数与行的值计数不匹配

php - (mysql) 通过meta_key和product_id获取woocommerce订单

php - 使用 DB 登录 PHP

php - Magento - 修改核心数据库

mysql - Ruby on Rails 服务器无法连接到 mysql

mysql - Laravel MariaDB 错误号 :150 "Foreign key constraint is incorrectly formed"

php - AVG 日期时间间隔,显示天数和小时数

mysql - 如何使用Spring Boot通过Postman操作数据

mysql - 搜索嵌套集

php - MySQL 使用外键插入查询