我有一个如下的mysql表
id tetangga1 tetangga2
1 null null
2 1 3
3 1 4
4 4 5
5 4 6
6 6 null
当删除同一张表中的某一行时,我需要将tetangga行的值更新为NULL,例如,如果我删除第1行,则该表将如下所示
id tetangga1 tetangga2
2 NULL 3
3 NULL 4
4 4 5
5 4 6
6 6 NULL
说明:第1行将被删除,第2行和第3行tetangga1的值将更新为空
我该如何实现?
答案 0 :(得分:1)
您可以使用适当定义的外键关系来做到这一点:
alter table t
add constraint fk_t_tetangga1
foreign key (tetangga1) references t(id)
on delete set NULL;
这实际上比触发器要好。数据库将保持关系的完整性。