每当我在oracle数据库中执行insert操作时,都会在该表上设置一个触发器来递增ID以模拟MYSQL的自动递增。
紧跟在INSERT sql之后,我执行以下SQL来检索最后插入行的最后一个ID:
$stmt = $this->query("SELECT {$sequence}.CURRVAL FROM DUAL", PDO::FETCH_COLUMN);然后,我使用此ID执行更新,以修改行中的列。
我的问题是,在并发性方面,这是安全的吗?
我的理解是序列是会话安全的吗?在这种情况下,会话到底是什么?
发布于 2015-06-25 15:03:29
我的问题是,就并发而言,这是安全的吗?
一般来说,没有,如果你使用触发器只是为了生成一个序列id (假设触发器的逻辑是正确的),那么它在并发性方面是安全的。
但是,我建议你读一下this article page 18,它会解释并发发生的时间和方式。
至于序列,是的,它们也是安全的。但是对于会话,我不太熟悉php。
https://stackoverflow.com/questions/31041434
复制相似问题