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;