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

start [/forum/topic.php?fid=47&mobile=1&tid=1831978]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 509ms |

| 0 / 0 |
