2015-06-25 31 views
1

每當我向oracle數據庫插入數據時,我執行一個插入操作,在這個表上設置一個觸發器來增加ID來模擬MYSQL的自動增量。oracle序列和併發性

直插入SQL後,我執行下列SQL來檢索最後插入的行的最後一個ID:

$stmt = $this->query("SELECT {$sequence}.CURRVAL FROM DUAL", PDO::FETCH_COLUMN); 

然後我用這個ID來執行更新修改的行中的列。

我的問題是這種安全的併發?

我的理解是SEQUENCES是會話安全的嗎?在這種情況下會議究竟是什麼?

回答

0

我的問題是這種安全的併發?

一般來說不會,如果您使用觸發器只生成一個序列ID(並假設觸發器的邏輯是正確的),那麼它在併發性方面是安全的。

但是,我建議您閱讀this article page 18它會解釋什麼時候發生併發,以及如何發生。

至於序列,是的,它們也是安全的。但至於我不熟悉php的會話。

+0

觸發器的目的是僅生成一個新的ID。我想我的問題是關於PHP的數據庫會話究竟是什麼? – rukiman

+0

@rukiman我不太擅長PHP會議希望有人可以幫助你 – Moudiz