SQL
oracle
メモ
ゴミ記事
初心者ですぅ

【Oracle】CREATE文『結果にコミットする』?

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文