每当我插入oracle数据库时,我执行插入操作,在此表上设置一个触发器以增加ID以模拟MYSQL的自动增量。
在INSERT sql之后直接我执行以下SQL来检索最后插入的行的最后一个ID:
$stmt = $this->query("SELECT {$sequence}.CURRVAL FROM DUAL", PDO::FETCH_COLUMN);
然后我使用此ID执行UPDATE来修改行中的列。
我的问题是在并发方面这是安全的吗?
我的理解是SEQUENCES会话安全吗?在这种情况下,会话究竟是什么?
答案 0 :(得分:0)
我的问题是在并发性方面是否安全?
一般来说不,如果你只是使用触发器来生成一个序列id(并假设触发器的逻辑是正确的)那么它在并发性方面是安全的。
但是,我建议您阅读this article page 18它将解释何时发生并发以及如何发生。
至于序列,是的,它们也是安全的。但至于会议,我不熟悉php。