事務處理的終止指令包括:commit 和 rollback
DBMS的事務具有 ACID 四種屬性
原子性 atomicity
一致性 consistency
隔離性 isolation
持久性 durability
在RDBMS系統中,事務代表了對錶中數據進行更新的單位
例如:在某公司的會議上,大家決定將a襯衫銷售價格降低100元出售,b襯衫的銷售價格上漲50元。正常邏輯就是寫sql句子咯:
update clothes
set a_shirt_price = a_shirt_price - 100
where colthes_name = 'a_shirt';
update clothes
set b_shirt_price = b_shirt_price + 100
where colthes_name = 'b_shirt';
但是上述兩個操作必須在同一個單元進行處理,任何一項操作被忘記,都會對公司造成影響。所以,事務就是解決上述問題的。
在DBMS系統的創建事務的語法,如下:
事務開始語句;
DML語句①(DML句子包括:INSERT、UPDATE、DELETE、SELECT DDL句子包括:CREATE、ALTER、DROP )
DML語句②
DML語句③
事務結束語句(commit rollback)
在標準的SQL中並沒有定義事務的開始語句,而是由各個DBMS自己來定義的。比較有代表性的語法如下:
1、SQL Server、PostgreSQLBEGIN TRANSACTION
2、MySQL
START TRANSACTION
3、Oracle、DB2
無
那麼對應的,在demo中,該公司進行襯衫價格調整的sql句子在Oracle中就該是按照如下寫法:
update clothes
set a_shirt_price = a_shirt_price - 100
where colthes_name = 'a_shirt';
update clothes
set b_shirt_price = b_shirt_price + 100
where colthes_name = 'b_shirt';
COMMIT;