mysql 不能删除表,因为有外键,但也不能删除外键

xzlaal3s  于 2023-05-05  发布在  Mysql
关注(0)|答案(2)|浏览(168)

我正试着丢掉两张table-

  1. drop table employee;有一个指向自身的fk-名为'super_id',还有一个指向'分支'表-名为'branch_id'
  2. drop table branch;有一个fk到'employee'表- 'mgr_id'
    因为它们之间引用了外键,所以我得到了错误消息:无法删除表'branch'上外键约束'branch_ibfk_1'引用的表'employee'//反之亦然
    所以我尝试删除两个表之间的外键约束:ALTER TABLE employee DROP FOREIGN KEY super_id; ALTER TABLE employee DROP FOREIGN KEY branch_id; ALTER TABLE branch DROP FOREIGN KEY mgr_id;
    但我也得到了一个错误,对于employee表:“无法删除'super_id' / '分支_id';检查列/键是否存在”
    对于分支表:“无法删除'mgr_id';检查列/键是否存在”
    我知道我可以擦除数据库,但我想知道如何正确工作。有谁能告诉我我做错了什么吗?TNX
ctzwtxfj

ctzwtxfj1#

在两张table上都试试这个

SET FOREIGN_KEY_CHECKS=0; DROP TABLE employees; SET FOREIGN_KEY_CHECKS=1;
SET FOREIGN_KEY_CHECKS=0; DROP TABLE branches; SET FOREIGN_KEY_CHECKS=1;
fhity93d

fhity93d2#

ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol;

fk_symbol =如果FOREIGN KEY子句在创建约束时定义了CONSTRAINT名称,则可以引用该名称以删除外键约束,该外键约束看起来类似于表employee上的= employee_ibfk_1

ALTER TABLE employee DROP FOREIGN KEY employee_ibfk_1;

相关问题