DELETEは指定したテーブルからWHERE句を満たす行を削除します。
condition(WHERE句)がない場合、指定したテーブルの全ての行を削除することになります。その結果は存在するものの、中身が空のテーブルになります。
Tip: PostgreSQLの拡張である、 TRUNCATEは、より高速に、テーブルから全ての行を削除する機構を提供します。
デフォルトで、DELETEは指定されたテーブル、及びそのサブテーブルすべてのタプルを削除します。指定したテーブルのみを更新したい場合には、ONLY句を使用して下さい。
テーブルを変更するためには書き込み権限が必要です。あわせて、 conditionで読み込まれる値を持つテーブルへの読み込み権限も必要になります。
テーブルfilmsからmusical以外を全て削除します。
DELETE FROM films WHERE kind <> 'Musical'; SELECT * FROM films; code | title | did | date_prod | kind | len -------+---------------------------+-----+------------+---------+------- UA501 | West Side Story | 105 | 1961-01-03 | Musical | 02:32 TC901 | The King and I | 109 | 1956-08-11 | Musical | 02:13 WD101 | Bed Knobs and Broomsticks | 111 | | Musical | 01:57 (3 rows)
テーブルfilmsを空にします。
DELETE FROM films; SELECT * FROM films; code | title | did | date_prod | kind | len ------+-------+-----+-----------+------+----- (0 rows)