oracle序列和并发

时间:2015-06-25 04:50:46

标签: php oracle

每当我插入oracle数据库时,我执行插入操作,在此表上设置一个触发器以增加ID以模拟MYSQL的自动增量。

在INSERT sql之后直接我执行以下SQL来检索最后插入的行的最后一个ID:

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

然后我使用此ID执行UPDATE来修改行中的列。

我的问题是在并发方面这是安全的吗?

我的理解是SEQUENCES会话安全吗?在这种情况下,会话究竟是什么?

1 个答案:

答案 0 :(得分:0)

  

我的问题是在并发性方面是否安全?

一般来说不,如果你只是使用触发器来生成一个序列id(并假设触发器的逻辑是正确的)那么它在并发性方面是安全的。

但是,我建议您阅读this article page 18它将解释何时发生并发以及如何发生。

至于序列,是的,它们也是安全的。但至于会议,我不熟悉php。