ブログBlog
SQLでの削除について
投稿日:2020年11月25日 テクノロジー
こんにちは。松宮です。
コロナとインフルとで心苦しいですね。
これから年末ですが自粛しましょう。
年賀状の牛は下書きできました。デザインなどゆっくり考えたいと思います。
さて 最近、業務作業で削除に関する作業が増えてきたので少し書いてみたいと思います。
(業務では主にSQLを使用しています。)
まず削除の命令は3つあります。
- DELETE(デリート)
- DROP(ドロップ)
- TRUNCATE(トランケート)
テーブルの中身や行の削除
DELETE FROM テーブル名
DELETE FROM テーブル名 WHERE 行又は条件に当たる行
テーブルの中身とテーブル自体の削除
DROP TEBLE テーブル名
テーブルの中身を削除
テーブル自体が削除されたあとにデータが空の(0件)のテーブルが作成される
TRUNCATE TEBLE テーブル名
ここまで削除コマンドの紹介をしてみましたが、次は削除実行後の話をしていきたいと思います。
SQLファイルやSQLを実行するためのツールなどで実行する場合は「COMMIT」(コミット)により処理が確定されます。
ただし削除の場合COMMITが必要な場合とそうでない場合があります。
ツールの自動コミットモードの設定やSQLファイルを実行前に自動コミットモードをどの様に設定しているかにも変ってきます。
①DELETEはCOMMITが必要です。
②DROP③TRUNCATEに関してはDDL(Data Definition Language)データ定義言語に属するためCOMMITせずとも自動でCOMMITされるそうです。
削除作業の後のCOMMIT忘れを懸念し手順書に赤字の太字でCOMMITが必要!!と追記していましたが、他の方がDDL(Data Definition Language)は不要です!!と修正してくださいました。
COMMITに関してはまだ知識が足りていないため自信を持って説明は出来ません。削除の作業の手順書にCOMMITの記載が有ったり無かったりしたのと私が使用しているツールではDDL(Data Definition Language)は裏で自動COMMITされるとの 事なのでCOMMITボタンは押さず、テーブルが消えているか検索して確認したりします。
もし削除の作業を行う機会がありましたら削除コマンド3種の違いとCOMMITが必要かどうかは注意して頂ければと思います。
あと自動コミットモードやDDLの事はもっと勉強が必要かと当記事を書いてみて思いました。