|
|
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
Можно ли в триггерах изменять другие столбцы той же самой таблицы, помимо текущего? При попытке выполнить запрос на изменение возникает ошибка: Код: sql 1. Обновлять именно другие столбцы, с текущим сделать это не проблема. P.S. Не спрашивайте зачем, просто академический интерес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 21:23 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
Опечатался, не столбцы, естесвтенно, а записи) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 21:24 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
Нет. И это разумно - ведь запросто можно породить шторм... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2012, 23:36 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
А на мой взгляд разумнее было бы реализовать для триггеров опцию, запрещающую в триггере рекурсию (но только с запретом вызова своих же триггеров, а не чужих). Чтоб по дефолту нельзя было, но с опцией можно было, при этом беря ответственность за пропущенные из-за ошибок в проектировании триггеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 00:34 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
Шогалберя ответственность за пропущенные из-за ошибок в проектировании триггеры.Ага.... и когда на твой сервер на хостинге встанет колом, потому что какой-то безответственный осёл разрешил рекурсию и поставил в неудобную позу свой сервер, прихватив заодно систему и соседей, ты, несомненно, будешь сильно рад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 09:04 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
AkinaШогалберя ответственность за пропущенные из-за ошибок в проектировании триггеры.Ага.... и когда на твой сервер на хостинге встанет колом, потому что какой-то безответственный осёл разрешил рекурсию и поставил в неудобную позу свой сервер, прихватив заодно систему и соседей, ты, несомненно, будешь сильно рад. Например, на masterhost есть mysql 5, но прав на создание VIEW не дают именно из соображений производительности. Так же и тут можно было поступить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 09:55 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
Дело не только в рекурсии и ресурсах (хотя и они тоже важны). Дело еще в потенциальном нарушении логики того запроса, который первоначально вызвал срабатывание триггеров. Если триггер изменяет набор записей, которые должны быть изменены этим запросом, то результат будет непредсказуемым. А с учетом того, что этот запрос и триггер вполне могут писать разные люди, то в таблице вполне может возникнуть хаос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 10:08 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
AkinaАга.... и когда на твой сервер на хостинге встанет колом, потому что какой-то безответственный осёл разрешил рекурсию и поставил в неудобную позу свой сервер, прихватив заодно систему и соседей, ты, несомненно, будешь сильно рад. Так я ж наоборот о запрете рекурсии говорю, а не о разрешении. Чтобы можно было обновить запись, не задействуя при этом триггеры (жертвой в этом случае может только целостность стать). А в неудобную позу можно легко поставить и без триггеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 10:13 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
ШогалТак я ж наоборот о запрете рекурсии говорю, а не о разрешении.Отсутствие лучше запрета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 13:00 |
|
||
|
Изменение записей той же таблицы в триггере
|
|||
|---|---|---|---|
|
#18+
шторм породить можно и в текущих условиях достаточно использовать две таблицы с триггерами обновляющими друг друга вижу два способа обхода этой ситуации: теоретический: таки да, запретить рекурсию практический: добавить дополнительные проверки и ограничения на время выполнения запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2016, 12:16 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=106&tid=1831978]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 320ms |

| 0 / 0 |
