【问题标题】:Database-Trigger to Delete row where condition True:数据库触发器删除条件为真的行:
【发布时间】:2019-04-10 17:26:07
【问题描述】:

我需要删除表paymtable1table2 两列都不为空的行的触发器。

下表中的示例: 表: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 updateafter update 触发器中做到这一点。
  • @danb 还有其他方法吗?

标签: mysql database-trigger


【解决方案1】:

触发器不能修改它正在运行的表。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 2015-09-30
    相关资源
    最近更新 更多