Обновление некоторых / всех значений в строке до нуля при удалении другой строки в той же таблице MYSQL

0

У меня таблица 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 будет обновлено до нуля

как я могу это достичь?

  • 1
    Если я правильно понимаю, вам нужен либо триггер delete либо каскадное отношение внешнего ключа.
Теги:

1 ответ

1

Вы можете сделать это с учетом отношения внешнего ключа:

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

На самом деле это лучше, чем триггер. База данных будет поддерживать реляционную целостность.

  • 0
    Если бы я должен был добавить ограничение внешнего ключа, я должен сделать копию этой таблицы или нет?
  • 0
    из того, что я прочитал на stackoverflow.com/questions/16969060/… удаление не может быть установлено в ноль, если ссылочный ключ является первичным ключом, поскольку первичный ключ не может быть установлен в ноль

Ещё вопросы

Сообщество Overcoder
Наверх
Меню