Триггер базы данных для удаления строки, где условие истинно:

Мне нужен триггер, который удаляет строку, в которой в таблице paym оба столбца table1 и table2 не пусты.

Пример в таблицах ниже: стол: paym

 ID        username        table1        Table2  
+-------+-------------+-------------+-----------+
|   1   |  John       |  Value      |    Value  |
+-------+-------------+-------------+-----------+
|   2   |  Alex       |  Null       |    Null   |
+-------+-------------+-------------+-----------+

Условие истинно: после удаления строки:

 ID        username        table1        Table2  
+-------+-------------+-------------+-----------+
|   2   |  Alex       |  Null       |    Null   |
+-------+-------------+-------------+-----------+

Моя попытка: (не работает)

CREATE trigger DeleteROW
AFTER UPDATE ON paym
FOR EACH ROW
    BEGIN
        IF (NEW.table1 IS NOT NULL AND NEW.table2 IS NOT NULL) THEN
          DELETE
    FROM
        paym WHERE table1 and table2 IS NOT NULL ;
        END IF;
    END

Я не думаю, что вы можете сделать это в триггере before update или after update.

DanB 10.04.2019 20:42

@danb Любые другие способы?

anonymous 10.04.2019 21:13
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
4
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Триггер не может изменить таблицу, в которой он работает.

Вы должны создать хранимую процедуру для обработки этого и вызывать ее вместо команды DELETE...

Другие вопросы по теме