mysql - 数据库触发器删除条件为真 : 的行

标签 mysql database-trigger

我需要触发器删除表 paym 中的行 table1table2 都不为空。

下表中的示例: 表: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

最佳答案

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

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

关于mysql - 数据库触发器删除条件为真 : 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55618245/

相关文章:

sql - 引发异常以禁止更新 PostgreSQL 中的列

mysql查询选择当月的所有行?

php - MySQL :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''

MySQL STR_TO_DATE 对于只有月份和年份或只有年份的字符串

oracle - SQL Server 到 Oracle 语言转换器

postgresql - 如何在 Postgresql 中获取结合 old.variablename 的列数据?

c# - 如何使用 ADO.NET 创建数据库触发器

mysql - 修改ubuntu中mysql数据库的密码

mysql - 按最高分筛选学生

mysql - 在触发器中打印声明的变量