У меня таблица 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 будет обновлено до нуля
как я могу это достичь?
Вы можете сделать это с учетом отношения внешнего ключа:
alter table t
add constraint fk_t_tetangga1
foreign key (tetangga1) references t(id)
on delete set NULL;
На самом деле это лучше, чем триггер. База данных будет поддерживать реляционную целостность.
delete
либо каскадное отношение внешнего ключа.