[英]Stored-Procedure to Delete row where this condition True:
我需要每次自动删除行的存储过程,其中表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 PROCEDURE DeleteRow
BEGIN
DELETE
FROM
paym WHERE table1 and table2 IS NOT NULL ;
END;
你的逻辑在这里,但语法是错误的。
在 WHERE 子句的每个字段之后,您必须指定一个条件,就像这样:
CREATE PROCEDURE DeleteRow
BEGIN
DELETE
FROM
paym WHERE table1 IS NOT NULL AND table2 IS NOT NULL ;
END;
您还可以使用COALESCE
CREATE PROCEDURE DeleteRow
BEGIN
DELETE FROM paym WHERE COALESCE(table1,table2) IS NOT NULL;
END;
CREATE PROCEDURE DeleteRow
BEGIN
DELETE
FROM
paym WHERE table1 IS NOT NULL AND table2 IS NOT NULL ;
END;
代码应该读取 table is not null and table 2 is not null,因为你需要在 and 语句之后有一个条件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.