2017-04-05 119 views
-1

花费时间试图弄清楚如何构建DB2 SQL语句,该语句首先检查记录是否存在,然后再删除它。寻找沿线的某个地方:DB2 - 在删除之前如何测试记录是否存在

if exists(select 1 from my_table where my_table.my_field = current date) then 
    delete from my_table where my_table.my_field = current date 

TIA!

+1

为什么记录是否在那里很重要? –

+0

在执行它之前手动检查它,然后执行删除操作..不能写入类似的条件 – Rams

+0

删除记录的阶段崩溃datastage作业出现此错误“没有找到FETCH,UPDATE或DELETE行” – user3753660

回答

0

既然你说这是一个DataStage作业,有两种方法可以处理这个问题:

1)添加一个消息处理该邮件将从一个错误的警告。见this techdoc

2)(也许更简单)在你的删除语句周围添加一个简单的选择来捕获删除的行数。 DataStage不会对此抱怨:

SELECT COUNT(*) AS DELETED 
FROM OLD TABLE (
    DELETE FROM <your_table> 
    WHERE <criteria> 
) 
相关问题