我想从表中移除约束条件。我的问题是:

ALTER TABLE `tbl_magazine_issue` 
DROP CONSTRAINT `FK_tbl_magazine_issue_mst_users`

但是我得到了一个错误:

#1064 -你的SQL语法错误;请查看MySQL服务器版本对应的手册,在第一行使用“constraint FK_tbl_magazine_issue_mst_users”附近的正确语法


当前回答

为了给Robert Knight的答案补充一点,因为文章的标题本身没有提到外键(因为他的文章没有完整的代码示例,而且SO的注释代码块没有答案的代码块显示得那么好),我将为唯一的约束添加这个。这两种方法中的任何一种都可以去除约束:

ALTER TABLE `table_name` DROP KEY `uc_name`;

or

ALTER TABLE `table_name` DROP INDEX `uc_name`;

其他回答

Mysql有一个特殊的语法来删除外键约束:

ALTER TABLE tbl_magazine_issue
  DROP FOREIGN KEY FK_tbl_magazine_issue_mst_users

在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中没有DROP约束。在你的情况下,你可以使用DROP外键代替。

如果约束不是外键,例如。一个添加使用'UNIQUE CONSTRAINT (colA, colB)',然后它是一个可以使用ALTER TABLE删除的索引…下降指数…

这将在MySQL上工作以删除约束

alter table tablename drop primary key;

alter table tablename drop foreign key;