|
триггер update поля на update поля в той же таблице
|
|||
---|---|---|---|
#18+
Подскажите, пожалуйста, есть такая задача: при смене поля Status в таблице, надо сбросить поле флаг IsNewMessage в этой же таблице. Получился такой триггер: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Достаточно ли такого join-а с deleted или надо что-то типа Код: sql 1. 2. 3. 4.
Будет ли такой триггер работать, если сразу будут апдейтиться несколько записей в таблице? Не будет ли зацикливания вызова триггера из-за того, что апдейтится одна и та же таблица? Заранее спасибо за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 10:48 |
|
триггер update поля на update поля в той же таблице
|
|||
---|---|---|---|
#18+
lsk Не будет ли зацикливания вызова триггера из-за того, что апдейтится одна и та же таблица? выполни и посмотри Код: sql 1.
пс нуу и у тебя же есть проверка IF UPDATE(Status) так, что даже если nested triggers = 1, то на втором вызове триггера, рекурсия "закончится" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 11:30 |
|
триггер update поля на update поля в той же таблице
|
|||
---|---|---|---|
#18+
lsk Достаточно ли такого join-а с deleted или надо что-то типа Код: sql 1. 2. 3. 4.
Код: sql 1.
т.е. даже если фактического изменения нет ... нуу и, надеюсь, что Status у тебя NOT NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 11:36 |
|
триггер update поля на update поля в той же таблице
|
|||
---|---|---|---|
#18+
lsk, Код: sql 1. 2. 3. 4. 5. 6.
Этого должно быть достаточно, т.к. такой триггер вызывается после изменения данных; соотв-но, данные в inserted будут совпадать с таблицей. Условие обновления лучше перенести из WHERE в CASE, если Status может быть NULL. Если же у вас это поле NOT NULL, то можно выкинуть case и сделать where как у вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 11:40 |
|
триггер update поля на update поля в той же таблице
|
|||
---|---|---|---|
#18+
Спасибо всем большое за ответы, теперь окончательно разобрался. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 11:56 |
|
триггер update поля на update поля в той же таблице
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 12:36 |
|
|
start [/forum/topic.php?fid=46&fpage=25&tid=1684726]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 159ms |
0 / 0 |