Database-Trigger для удаления строки, где условие True: - PullRequest
4 голосов
/ 10 апреля 2019

Мне нужен триггер, который удаляет строку, в которой в таблице 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

1 Ответ

3 голосов
/ 11 апреля 2019

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

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

...