|
Уникальность записи в триггерных inserted/deleted
|
|||
---|---|---|---|
#18+
Дано: некая таблица с полем id primary key. Таблица изменяется различными способами - update/delete c джойнами, merge (разве что bulk insert не делается). Вопрос: можно ли полагаться на то, что при любом варианте изменения таблицы в DML-триггере в таблицах inserted/updated значение поля id будет уникально? Рылся в документации ( здесь , здесь ) - ничего по этому поводу не нашел, но все тестовые примеры, которые прогонял, дают уникальное значение. Хотелось бы быть уверенным наверняка насчет этой уникальности, поскольку в противном случае существующий вариант триггера отработает с ошибкой. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 04:54 |
|
Уникальность записи в триггерных inserted/deleted
|
|||
---|---|---|---|
#18+
WinterGraveyard, Полагаться можно. Триггеры after insert / update / delete запускаются после окончания операции и на входе получают финальное состояние записей. Если строку обновляли 100 раз в ходе одного апдейта, то в триггере будет только ее финальное состояние. Merge выкинет ошибку, если ваш код попытается повторно обновить одну и ту же строку, т.е. до триггера дело не дойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 05:12 |
|
Уникальность записи в триггерных inserted/deleted
|
|||
---|---|---|---|
#18+
WinterGraveyard Дано: некая таблица с полем id primary key. Таблица изменяется различными способами - update/delete c джойнами, merge (разве что bulk insert не делается). Вопрос: можно ли полагаться на то, что при любом варианте изменения таблицы в DML-триггере в таблицах inserted/updated значение поля id будет уникально? Рылся в документации ( здесь , здесь ) - ничего по этому поводу не нашел, но все тестовые примеры, которые прогонял, дают уникальное значение. Хотелось бы быть уверенным наверняка насчет этой уникальности, поскольку в противном случае существующий вариант триггера отработает с ошибкой. Спасибо. Рыться надобно в голове. Id - уникальный ключ таблицы. Одна строка таблицы обновляется/удаляется только один раз в одной инструкции DML. Отсюда тривиальный вывод. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 07:15 |
|
|
start [/forum/topic.php?fid=46&msg=40115424&tid=1684068]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
145ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 236ms |
total: | 477ms |
0 / 0 |