使SQL查询在尝试删除不存在的记录时失败

使SQL查询在尝试删除不存在的记录时失败,sql,Sql,当查询试图删除不存在的实体时,是否存在导致查询失败的标准SQL语法?例如 DELETE FROM entity WHERE id = 501; 即使没有id=501的实体,也不会失败。可以通过跨数据库的方式完成吗?根据环境的不同,您可以获得已删除的行数,其中可以将0作为错误处理 或者,如果未删除任何行,则可以使用引发异常的触发器。以下是在Oracle中处理此问题的一种方法: BEGIN DELETE FROM test WHERE id = 4; IF (SQL

当查询试图删除不存在的实体时,是否存在导致查询失败的标准SQL语法?例如

DELETE FROM entity WHERE id = 501;

即使没有id=501的实体,也不会失败。可以通过跨数据库的方式完成吗?

根据环境的不同,您可以获得已删除的行数,其中可以将0作为错误处理


或者,如果未删除任何行,则可以使用引发异常的触发器。

以下是在Oracle中处理此问题的一种方法:

BEGIN
  DELETE FROM test
  WHERE       id = 4;
      IF (SQL%NOTFOUND) THEN
         dbms_output.put_line('It is already gone');
     END IF;
END;
/

你说的失败是什么意思?您可以在SQL中使用条件语句返回1或0(成功/失败)?不存在的实体与已删除的实体一样好,那么为什么它会失败?@Satpal我不同意,根据上下文,可以合理地指出您尝试删除不存在的实体,正如添加相同的行一样,根据上下文,可能没有问题或错误。根据环境,您可以获得已删除的行数,其中可以将0作为错误处理。