概要
SQLite3におけるdelete文の基本的な使い方。
構文
削除したいレコードの条件をwhere句で指定するのが基本。
delete from table_name
where
column = value ...
実行例
id | name | quantity |
---|---|---|
1 | tomato | 100 |
2 | potato | 120 |
3 | pumpkin | 50 |
「name」カラムの値が「tomato」のレコードを削除する
delete from product
where
name = 'tomato';
id | name | quantity |
---|---|---|
2 | potato | 120 |
3 | pumpkin | 50 |
テーブルの全レコードを削除する
SQLite 3 ではOracleやMySQLのような「truncate」構文がサポートされていない。
テーブルの全レコードを削除する場合はwhere句を指定せずにdelete文を実行すればいい。
truncateではないからと言って削除処理が遅いわけではない。
where句やreturning句を指定すると各レコードにアクセスしながら削除していくが、
これらを指定しなかった場合 各レコードにアクセスせずに
テーブルの内容全体を削除するよう最適化されている。
delete from table_name;
参考サイト
-
SQLite 公式サイト(英語)
https://www.sqlite.org/index.html -
SQLite Query Language: DELETE(英語)
公式のDELETE構文に関するドキュメント
https://www.sqlite.org/lang_delete.html -
The Truncate Optimization(英語)
公式のテーブル内容全削除に関するドキュメント
https://www.sqlite.org/lang_delete.html#the_truncate_optimization