ebanytiu_lis
@ebanytiu_lis

Триггеры в MySQl, PostgreSQL?

Совсем не могу понять триггеры: в гугле всё мутно.
Имеется таблица с колонками: id, balance, refer. Нужно, например, при запросе
UPDATE talbe SET balance = balance + 100 WHERE id = 1
, выполнить ещё и запрос ( в запросе: 50 = 100 из первого запроса / 2 )
UPDATE talbe SET balance = balance + 50 WHERE id = РЕФЕР 1-го
. Это всё дело можно реализовать через триггеры, но как?
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Fortop
Tech/Team lead
Можно, но если для вас это мутно, то лучше не делать.
Выполняйте эти два запроса из кода.

Потому что при такой логике работы у вас может возникнуть циклическое выполнение триггеров в зависимости от корректности ваших данных БД и кода самих триггеров

Проблема:
https://stackoverflow.com/questions/10699673/a-tri...

Один из вариантов ее решения:
https://stackoverflow.com/questions/9570204/how-to...
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
ЕМНИП, в триггере нельзя изменять таблицу, по которой срабатывает триггер. Так что либо в клиенте, либо писать хранимую процедуру.
Ответ написан
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
Во первых у вас получается бесконечный цикл.
Во вторых если вам нужно такое то советую серьезно подумать над архитектурой, такой задачи возникнуть не должно было.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы