2017-04-05 80 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> 
) 
相關問題