[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

DELETE

名前

DELETE -- テーブルから行を削除

概要

DELETE FROM [ ONLY ] table [ WHERE condition ]

説明

DELETE は指定したテーブルから WHERE 句を満たす行を削除します。 WHEREがない場合、指定したテーブルの全ての行を削除することになります。 その結果は、存在するものの中身が空のテーブルになります。

ティップ: PostgreSQL の拡張である TRUNCATE は、より高速に、テーブルから全ての行を削除する機構を提供します。

デフォルトで、DELETE は指定されたテーブル及びその全てのサブテーブルの行を削除します。 指定されたテーブルのみを削除したい場合は ONLY 句を使用して下さい。

テーブルから削除するためには、そのテーブルの DELETE 権限が必要です。 同様に、condition において値を読み取るテーブルに対する SELECT 権限も必要です。

パラメータ

table

既存のテーブル名です (スキーマ修飾名でも可)。

condition

削除すべき行を決定する、boolean 型の値を返す値式です。

出力

正常に終了した場合、DELETEコマンドは以下の形式のコマンドタグを返します。

DELETE count

countは削除した行数です。 count が0 の場合、conditionを満たす行がなかったことを示します。 (これはエラーとはみなされません。)

テーブル films から musical 以外を全て削除します。

DELETE FROM films WHERE kind <> 'Musical';

テーブル films を空にします。

DELETE FROM films;

互換性

このコマンドは標準SQLに準拠しています。