2015-06-23 30 views
0

我有表ABC並在過程中在啓動時使用刪除操作,並在結束時選擇操作。 (刪除沒有where子句)同時完成時刪除並選擇表影響

現在,如果一個進程A調用該過程,並且它在選擇表ABC上,那麼同時另一個進程B調用在沒有任何where子句的情況下到達ABC刪除的過程。

所以我的問題是,過程A可以找到數據作爲刪除沒有where子句同時發生。

從字面上看,同步會出現在表格之間。

+0

我的理解是,如果來自同一會話的進程相同,進程A將不會返回任何數據,除非它在B之前運行。如果它們來自不同會話,則只要B沒有發出提交語句,進程A就會返回數據 – Hawk

回答

1

我建議你閱讀了甲骨文多版本和ACID事務

http://docs.oracle.com/cd/E18283_01/server.112/e16508/consist.htm

https://en.wikipedia.org/?title=ACID

的事情發生在一個會話中的事務中不向其他會話。這一直持續到發佈提交爲止。在發佈提交或回滾之前,您有自己的版本。

Oracle不像其他數據庫服務器那樣默認啓動事務。其他數據庫服務器也有它們自己的默認值和不同的ACID實現。