#1.はじめに
OracleのDBを使う事があるのだが、CREATE文を流す時に『あれっ?COMMITって必要ないの』となったので調べた事をメモ。
#2.なぜ『あれっ?』てなったか
個人的にSELECT以外のDBの状態を変化させるような作業は全てCOMMITが必要と考えていた。
INSERT → COMMIT。DELETE → COMMIT。CREATE → Non COMMIT。
テーブル作成時にコミットしていないことに気づき、『結果にコミットしなくて良いのか?』となった。
#3.DDL文は『暗黙コミット』
CREATE文などのデータ定義言語(DDL)文は、明示的にコミットしなくても暗黙的にコミットされるとのこと。
その他、SQL*PlusをEXITかQUITコマンドで終了した場合にも暗黙コミットされるとのこと。
<参考>
https://www.shift-the-oracle.com/transaction/commit.html
http://oraclemasterdb.seesaa.net/article/96566762.html
##DDL例
・CREATE文 (CREATE TABLE,CREATE SEQUENCE,CREATE SYNONYM)
・ALTER文 (ALTER TABLE,ALTER USER)
・DROP文 (DROP TABLE,DROP SEQUENCE,DROP VIEW)
・TRUNCATE文
・RENAME文