powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите написать триггер UPDATE
2 сообщений из 2, страница 1 из 1
Помогите написать триггер UPDATE
    #38613253
photolife
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Совершенно не разбираюсь в трггерах, нужен тригер который при обновлении таблицы "alpha", посчитает сумму значений всего столбца этой таблицы и добавит эту сумму в таблицу "beta" в строку с id = "1" .
...
Рейтинг: 0 / 0
Помогите написать триггер UPDATE
    #38614176
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
photolife,

плохая затея.

тригер он апдейт бифо, работает по принципу.

дельта_суммы = новое значение - старое значение.

а в бета добаку делать дельта_суммы. не зачем постояно лопатить всю таблицу
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#trigger before on insert
BEGIN
update users set total_size:=total_size + NEW.size where iduser = NEW.fk_iduser;
END

#trigger before on update
BEGIN

IF NEW.size IS NULL THEN set NEW.size:= OLD.size; END IF;

IF NEW.fk_iduser = OLD.fk_iduser
THEN
update users set total_size:=total_size + NEW.size-OLD.size where iduser = NEW.fk_iduser;
ELSE
update users set total_size:=total_size - OLD.size where iduser = OLD.fk_iduser;
update users set total_size:=total_size + NEW.size where iduser = NEW.fk_iduser;
END IF;
END



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


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