ST_Geometry 空間列の値の削除
SQL の DELETE ステートメントは、指定したテーブルまたはビューからデータ行を削除します。
手順:
-
以下は、サポート対象のそれぞれのデータベースで、データを削除するクエリの例です。
- この例では、空間フィルタに基づき空間タイプを使用して Oracle ジオデータベースから値を削除します。
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);
- この例では、空間フィルタに基づき空間タイプを使用して PostgreSQL ジオデータベースから値を削除します。
DELETE FROM sensitive_areas WHERE names EXISTS (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 't');
- IBM DB2 では次のステートメントを使用します。
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE db2gse.st_overlaps (sa.zone, db2gse.st_buffer (hs.location,.01)) = 1);
- Informix では、サブクエリで使用するテーブルまたはビューの変更がサポートされません。そのため、クエリを 2 つの部分に分け、SELECT で一時テーブルを作成し、その一時テーブルを使用してデータを削除します。
SELECT sa.name FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) INTO TEMP tempTable; DELETE FROM sensitive_areas WHERE name IN (select name from tempTable);
- この例では、空間フィルタに基づき空間タイプを使用して Oracle ジオデータベースから値を削除します。
7/10/2012