2012-06-15 92 views
0

我在我的數據庫中有一種我想挑選舊記錄的元數據表。 我已經創建了我選擇要刪除的行的「選擇」的聲明:將選擇語句轉換爲刪除

select m.tablename, m.OWNERNAME 
    from MAPINFO.MAPINFO_MAPCATALOG m 
    left outer join sys.ALL_TABLES t 
    on TRIM(m.tablename) = t.TABLE_NAME and TRIM(m.OWNERNAME) = t.owner 
    where t.num_rows is null 

這給了我113行。

但是,我不知道如何將其轉換爲「刪除」。我打算只用:

delete from MAPINFO.MAPINFO_MAPCATALOG where tablename in (...) 

但是這會刪除115行。有兩個問題:

  1. 我需要比較表名和所有者名稱。通過只比較tablename,我會刪除兩個不應該被刪除的表。
  2. 該表沒有唯一鍵,我無法創建它們。

鑑於上述情況,我該如何去執行這個刪除?

回答

1

你可以這樣做:

delete from MAPINFO.MAPINFO_MAPCATALOG where (tablename, ownername) in (...) 
+0

是的,這工作。爲什麼Google的搜索結果不能提供有用的功能呢?謝謝! –

+0

現在,如果您搜索「將選擇的語句轉換爲刪除」;現在呢?) –