vas*_*rov 3 mysql sql cascade onupdate
所以,我得到:
错误代码:1451。无法删除或更新父行:外键约束失败(
playground.Person、CONSTRAINTsk_Person_ParentFOREIGN KEY (parent_id) REFERENCESPerson(id) ON DELETE CASCADE ON UPDATE CASCADE)
这是一个简单的表格,引用自身:
CREATE TABLE IF NOT EXISTS Person (
id int not null primary key,
name varchar(100) not null,
parent_id int null,
CONSTRAINT `sk_Person_Parent`
FOREIGN KEY (parent_id)
REFERENCES Person (id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
如您所见,有“ON UPDATE CASCADE”。我在其中插入 4 个简单的行:
INSERT INTO Person(id, name, parent_id)
VALUES
(1, 'vasko', NULL),
(2, 'asdas', 1),
(3, 'ivo', 1),
(4, 'anton', 3);
Run Code Online (Sandbox Code Playgroud)
所以我有 1 - vasko 2 - asdasd 3 - ivo 4 - anton。当我按 id 1 删除时,由于 ON DELETE CASCADE,所有记录都会被擦除。但是,如果我尝试执行
UPDATE Person
SET id=10
WHERE id=1;
Run Code Online (Sandbox Code Playgroud)
我收到给定的错误。有任何想法吗?
(我期望 vasil 的 id 变为 10,并且接下来 2 行的parent_id 更新为 10)
| 归档时间: |
|
| 查看次数: |
1801 次 |
| 最近记录: |