2015-06-25 7 views
1

Всякий раз, когда я вставляю в базу данных оракула, я выполняю вставку, в этой таблице установлен триггер, чтобы увеличить идентификатор, чтобы эмулировать автоинкремент MYSQL.последовательности oracle и параллелизм

Сразу после INSERT SQL я выполнить следующий SQL, чтобы получить последний идентификатор последней вставленной строки:

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

я затем использовать этот идентификатор, чтобы выполнить обновление, чтобы изменить столбцы в строке.

Вопрос в том, насколько безопасен с точки зрения параллелизма?

Насколько я понимаю, SEQUENCES являются безопасными в сеансе? Что такое сеанс в этом случае?

ответ

0

Мой вопрос заключается в этом безопасном с точки зрения параллелизма?

В общем случае нет, если вы используете триггер только для генерации идентификатора последовательности (и предположим, что логика триггера правильная), то это безопасно с точки зрения параллелизма.

Однако, я рекомендую вам прочитать this article page 18, он объяснит, когда происходит параллелизм и как.

Что касается последовательностей, то они также безопасны. но что касается сессий, я не знаком с php.

+0

Цель триггера - генерировать только новый идентификатор. Думаю, мой вопрос в том, что такое сеанс БД в отношении PHP? – rukiman

+0

@rukiman Я не так хорош в отношении сессии php, кто-то может вам помочь – Moudiz

Смежные вопросы