sql—删除同一表中的另一行时,将行中的部分/全部值更新为null

whlutmcx  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我有一个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的值将更新为空
我怎样才能做到呢?

n53p2ov0

n53p2ov01#

您可以使用适当定义的外键关系来执行此操作:

alter table t
    add constraint fk_t_tetangga1
        foreign key (tetangga1) references t(id)
        on delete set NULL;

这其实比扳机好。数据库将保持关系的完整性。

相关问题