数据库触发删除条件为True的行:

时间:2019-04-10 17:26:08

标签: mysql database-trigger

我需要触发删除行,其中表paym和列table1table2中的行都不为空。

下表中的示例: 表格:paym

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

条件为true:删除后的行:

 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 个答案:

答案 0 :(得分:3)

触发器无法修改正在其上运行的表。

您应该创建一个存储过程来处理此问题,然后调用它而不是DELETE命令...