データベースに、古いレコードを選別したい一種のメタデータ テーブルがあります。削除する行を選択する「select」ステートメントを作成しました。
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 行を削除します。2 つの問題があります。
- テーブル名と所有者名を比較する必要があります。tablename を比較するだけで、削除してはならない 2 つのテーブルを削除することになります。
- テーブルには一意のキーがなく、作成する立場にありません。
上記の場合、この削除を実行するにはどうすればよいですか?