想知道create是否需要commit,你需要了解這些基本的數據庫sql語言的知識。
DDL:數據庫定義語言,用來創建數據庫,創建表格等。
DML:數據庫管理語言,如增刪改查語句等 。
DCL:數據庫操作語言,如修改數據庫系統權限。
DQL:數據查詢語言,如模糊查詢,連接查詢。
這里就DML,DDL進行一個對比。
DML語言,比如update,delete,insert等修改表中數據的需要commit;
DDL語言,比如create,drop等改變表結構的,就不需要寫commit(因為內部隱藏了commit);
DDL 數據定義語言:
create table 創建表 ?
alter table 修改表 ?
drop table 刪除表 ?
truncate table 刪除表中所有行 ?
create index 創建索引 ?
drop index 刪除索引
當執行DDL語句時,在每一條語句前后,oracle都將提交當前的事務。如果用戶使用insert命令將記錄插入到數據庫后,執行了一條DDL語句(如create table),此時來自insert命令的數據將被提交到數據庫。當DDL語句執行完成時,DDL語句會被自動提交,不能回滾。
DML 數據操作語言:
insert 將記錄插入到數據庫 ?
update 修改數據庫的記錄 ?
delete 刪除數據庫的記錄
當執行DML命令如果沒有提交,將不會被其他會話看到。除非在DML命令之后執行了DDL命令或DCL命令,或用戶退出會話,或終止實例,此時系統會自動
發出commit命令,使未提交的DML命令提交。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END