ALTER TABLE tbl_magazine_issue
DROP FOREIGN KEY FK_tbl_magazine_issue_mst_users
24
我有同样的问题,我得用这个代码来解决:
ALTER TABLE `table_name` DROP FOREIGN KEY `id_name_fk`;
ALTER TABLE `table_name` DROP INDEX `id_name_fk`;
372
在MySQL中没有 DROP CONSTRAINT 这样的东西 . 在您的情况下,您可以使用 DROP FOREIGN KEY .
0
如果约束不是外键,例如 . 一个使用'UNIQUE CONSTRAINT (colA, colB)'添加,然后它是一个可以使用 ALTER TABLE ... DROP INDEX ... 删除的索引
41
为罗伯特·奈特添加一些东西's answer, since the title of the post itself doesn' t提到外键(因为他的注释代码块没有't show as well as the answers'代码块),我将为 unique 约束添加这个 . 其中任何一个都可以放弃约束:
ALTER TABLE `table_name` DROP KEY `uc_name`;
要么
ALTER TABLE `table_name` DROP INDEX `uc_name`;
11
同样不错,您可以暂时禁用mysql数据库中的所有外键检查: SET FOREIGN_KEY_CHECKS=0; 并再次启用它: SET FOREIGN_KEY_CHECKS=1;
10 回答
Mysql有一个特殊的语法来删除外键约束:
我有同样的问题,我得用这个代码来解决:
在MySQL中没有
DROP CONSTRAINT
这样的东西 . 在您的情况下,您可以使用DROP FOREIGN KEY
.如果约束不是外键,例如 . 一个使用'UNIQUE CONSTRAINT (colA, colB)'添加,然后它是一个可以使用
ALTER TABLE ... DROP INDEX ...
删除的索引为罗伯特·奈特添加一些东西's answer, since the title of the post itself doesn' t提到外键(因为他的注释代码块没有't show as well as the answers'代码块),我将为 unique 约束添加这个 . 其中任何一个都可以放弃约束:
要么
同样不错,您可以暂时禁用mysql数据库中的所有外键检查:
SET FOREIGN_KEY_CHECKS=0;
并再次启用它:SET FOREIGN_KEY_CHECKS=1;
对于外键,某些ORM或框架使用与默认
FK_[parent table]_[referenced table]_[referencing field]
不同的命名约定,因为它们可以被更改 .例如,Laravel使用
[parent table]_[referencing field]_foreign
作为命名约定 . 您可以使用此查询显示外键的名称,如here所示:然后通过运行前面提到的DROP FOREIGN KEY查询及其正确名称来删除外键 .
转到表格的结构视图
您将在顶部看到2个选项a . 表格结构b . Relation view .
现在单击 Relation view ,这里可以删除外键约束 . 你会在这里得到所有的关系 .
对于那些使用MariaDB来到这里的人:
请注意,MariaDB通常允许DROP CONSTRAINT语句,例如用于删除检查约束:
https://mariadb.com/kb/en/library/alter-table/
这将适用于MySQL以减少约束