我想从表中移除约束条件。我的问题是:
ALTER TABLE `tbl_magazine_issue`
DROP CONSTRAINT `FK_tbl_magazine_issue_mst_users`
但是我得到了一个错误:
#1064 -你的SQL语法错误;请查看MySQL服务器版本对应的手册,在第一行使用“constraint FK_tbl_magazine_issue_mst_users”附近的正确语法
我想从表中移除约束条件。我的问题是:
ALTER TABLE `tbl_magazine_issue`
DROP CONSTRAINT `FK_tbl_magazine_issue_mst_users`
但是我得到了一个错误:
#1064 -你的SQL语法错误;请查看MySQL服务器版本对应的手册,在第一行使用“constraint FK_tbl_magazine_issue_mst_users”附近的正确语法
当前回答
如果约束不是外键,例如。一个添加使用'UNIQUE CONSTRAINT (colA, colB)',然后它是一个可以使用ALTER TABLE删除的索引…下降指数…
其他回答
删除约束最简单的方法是使用语法ALTER TABLE tbl_name DROP constraint符号;MySQL 8.0.19介绍:
从MySQL 8.0.19开始,ALTER TABLE允许使用更通用的(和SQL标准的)语法来删除和修改任何类型的现有约束,其中约束类型由约束名称决定
ALTER TABLE tbl_magazine_issue DROP CONSTRAINT FK_tbl_magazine_issue_mst_users;
db < > fiddle演示
这将在MySQL上工作以删除约束
alter table tablename drop primary key;
alter table tablename drop foreign key;
在MySQL中,你必须指定你想要删除的约束类型:
例子:
CONSTRAINT `shop_ibfk_1` FOREIGN KEY (`fb_user_id`) REFERENCES `fb_user` (`id`),
CONSTRAINT `shop_chk_1` CHECK ((`import_lock` in (0,1)))
第一个你可以用:
alter mytable shop drop FOREIGN KEY `shop_ibfk_1`;
第二个是
alter mytable drop CHECK `shop_chk_1`;
另外,你可以暂时禁用mysql数据库中的所有外键检查: 设置FOREIGN_KEY_CHECKS = 0; 并再次启用它: 设置FOREIGN_KEY_CHECKS = 1;
Mysql有一个特殊的语法来删除外键约束:
ALTER TABLE tbl_magazine_issue
DROP FOREIGN KEY FK_tbl_magazine_issue_mst_users