约束不存在,无法删除表

  • 本文关键字:删除 不存在 约束 mysql
  • 更新时间 :
  • 英文 :

CREATE TABLE employee (
emp_id INT PRIMARY KEY,
first_name VARCHAR(40),
last_name VARCHAR(40),
birth_day DATE,
sex VARCHAR(1),
salary INT,
super_id INT,
branch_id INT
);
CREATE TABLE branch (
branch_id INT PRIMARY KEY,
branch_name VARCHAR(40),
mgr_id INT,
mgr_start_date DATE,
FOREIGN KEY(mgr_id) REFERENCES employee(emp_id) ON DELETE SET NULL
);
ALTER TABLE employee
ADD FOREIGN KEY(branch_id)
REFERENCES branch(branch_id)
ON DELETE SET NULL;
ALTER TABLE employee
ADD FOREIGN KEY(super_id)
REFERENCES employee(emp_id)
ON DELETE SET NULL;
ALTER TABLE employee DROP CONSTRAINT branch_id;

尝试删除Constraint branch_id错误表示"Constraint"branch_id"不存在。">

我只想放下员工表。

首先使用查找约束的名称

SHOW CREATE TABLE employee

这个名字不是";branch_id";。

外键约束的实际名称是而不是branch_id,它是其他名称。这里更好的方法是明确命名约束:

ALTER TABLE employee
ADD CONSTRAINT fk_branch_id FOREIGN KEY (branch_id)
REFERENCES branch(branch_id);

然后,使用上面使用的显式约束名称删除它:

ALTER TABLE employee DROP FOREIGN KEY fk_branch_id;

最新更新