想象我有這個簡單的表:甲骨文 - Oracle如何管理交易的具體DML語句
Table Name: Table1
Columns: Col1 NUMBER (Primary Key)
Col2 NUMBER
如果我將記錄插入表1沒有提交...
INSERT INTO Table1 (Col1, Col2) Values (100, 1234);
Oracle如何知道下一個INSERT語句違反PK約束,因爲還沒有提交到數據庫。
INSERT INTO Table1 (Col1, Col2) Values (100, 5678);
凡/ Oracle如何管理事務,以便它知道我違反約束的時候我還沒有提交事務呢。
Oracle在哪裏/如何管理?在某種系統表中? – contactmatt
@contactmatt - 在索引結構本身。就像在表中的一個塊的每一行中都有一個鎖標誌一樣,以便Oracle不需要單獨的鎖管理器,索引塊中也有類似的結構。 –
+1。很好解釋。我總是有這個問題問某人:「這些信息寫在哪裏(索引條目,表條目)?在重做/撤消日誌中?」 – Guru