powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Изменение записей той же таблицы в триггере
10 сообщений из 10, страница 1 из 1
Изменение записей той же таблицы в триггере
    #37797836
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли в триггерах изменять другие столбцы той же самой таблицы, помимо текущего?
При попытке выполнить запрос на изменение возникает ошибка:
Код: sql
1.
SQL Error (1442): Can't update table 'test' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.


Обновлять именно другие столбцы, с текущим сделать это не проблема.
P.S. Не спрашивайте зачем, просто академический интерес.
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37797837
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатался, не столбцы, естесвтенно, а записи)
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37797949
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. И это разумно - ведь запросто можно породить шторм...
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37797996
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на мой взгляд разумнее было бы реализовать для триггеров опцию, запрещающую в триггере рекурсию (но только с запретом вызова своих же триггеров, а не чужих). Чтоб по дефолту нельзя было, но с опцией можно было, при этом беря ответственность за пропущенные из-за ошибок в проектировании триггеры.
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37798178
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шогалберя ответственность за пропущенные из-за ошибок в проектировании триггеры.Ага.... и когда на твой сервер на хостинге встанет колом, потому что какой-то безответственный осёл разрешил рекурсию и поставил в неудобную позу свой сервер, прихватив заодно систему и соседей, ты, несомненно, будешь сильно рад.
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37798250
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaШогалберя ответственность за пропущенные из-за ошибок в проектировании триггеры.Ага.... и когда на твой сервер на хостинге встанет колом, потому что какой-то безответственный осёл разрешил рекурсию и поставил в неудобную позу свой сервер, прихватив заодно систему и соседей, ты, несомненно, будешь сильно рад.
Например, на masterhost есть mysql 5, но прав на создание VIEW не дают именно из соображений производительности. Так же и тут можно было поступить
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37798270
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело не только в рекурсии и ресурсах (хотя и они тоже важны).
Дело еще в потенциальном нарушении логики того запроса, который первоначально вызвал срабатывание триггеров. Если триггер изменяет набор записей, которые должны быть изменены этим запросом, то результат будет непредсказуемым. А с учетом того, что этот запрос и триггер вполне могут писать разные люди, то в таблице вполне может возникнуть хаос.
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37798281
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaАга.... и когда на твой сервер на хостинге встанет колом, потому что какой-то безответственный осёл разрешил рекурсию и поставил в неудобную позу свой сервер, прихватив заодно систему и соседей, ты, несомненно, будешь сильно рад.
Так я ж наоборот о запрете рекурсии говорю, а не о разрешении. Чтобы можно было обновить запись, не задействуя при этом триггеры (жертвой в этом случае может только целостность стать). А в неудобную позу можно легко поставить и без триггеров.
...
Рейтинг: 0 / 0
Изменение записей той же таблицы в триггере
    #37798711
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШогалТак я ж наоборот о запрете рекурсии говорю, а не о разрешении.Отсутствие лучше запрета.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Изменение записей той же таблицы в триггере
    #39204960
шторм породить можно и в текущих условиях
достаточно использовать две таблицы с триггерами обновляющими друг друга
вижу два способа обхода этой ситуации:
теоретический:
таки да, запретить рекурсию

практический:
добавить дополнительные проверки и ограничения на время выполнения запроса
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Изменение записей той же таблицы в триггере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]