我有以下表格:
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
);
CREATE TABLE branch_supplier (
branch_id INT,
supplier_name VARCHAR(40),
supply_type VARCHAR(40),
PRIMARY KEY(branch_id, supplier_name),
FOREIGN KEY(branch_id) REFERENCES branch(branch_id) ON DELETE CASCADE
);
我正在尝试将信息插入到branch\u supplier表中。
INSERT INTO branch_supplier VALUES(2, 'Uni-ball', 'Writing Utensils');
但不断出现以下错误:
er\u no\u referenced\u row\u 2:无法添加或更新子行:外键约束失败( girrafe
. branch_supplier
,约束 branch_supplier_ibfk_1
外键( branch_id
)参考文献 branch
( branch_id
)删除时(级联)
我刚刚开始学习mysql。不知道怎么解决。
1条答案
按热度按时间xqkwcwgp1#
错误信息非常清楚。为列指定的值
branch_supplier
在子表中branch_supplier
(这里,2
)列中必须存在branch_id
父表的branch
.将该值更改为父表中存在的值,或者先插入父行,然后插入子行。