繁体   English   中英

删除此条件为真的行的存储过程:

[英]Stored-Procedure to Delete row where this condition True:

我需要每次自动删除行的存储过程,其中表paym中的列table1table2都不为空。

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM