我们的错误处理设置方式是,当发生此警告时,将向每个人发送一封电子邮件(我无法更改此警告)。我真的不在乎没有找到适合这项工作的行。
我该怎么办
A) 在删除某行之前检查该行是否存在,或者
B)以某种方式规避/忽略此警告?
删除示例:
delete from schema.table
where key is null;
SQLSTATE=02000 No row
FETCH、UPDATE 或 DELETE 显示错误;或者查询结果是一个空表。
我也无法插入虚拟记录来删除。
也许这样就可以了
with delete_rows as (
select * from old table (delete from schema.table where key is null)
)
select count(*) from delete_rows
你可以尝试复合SQL(编译)语句“吃掉”这个警告。
BEGIN
DECLARE CONTINUE HANDLER FOR NOT FOUND
BEGIN END;
DELETE ...;
END
马克·巴林斯坦的解决方案对我有用。我正在通过 IBM 的 CLI ODBC 驱动程序调用一个使用 MERGE 语句的 DB2 存储过程,并将其添加到开头抑制了我的警告!