Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / создание триггера / 7 сообщений из 7, страница 1 из 1
17.04.2008, 16:22
    #35262457
создание триггера
создаю триггер на обновление даты:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TRIGGER  upd_fuctional_tasks
NO CASCADE BEFORE
UPDATE ON functional_tasks
REFERENCING NEW AS nnn
FOR EACH ROW
MODE DB2SQL
SET  date_begin = 

	case when status_id =  0 
		then CURRENT TIMESTAMP
            else date_begin
                    end       
;

когда делаю update :

update functional_tasks set status = 0 where id = 1;

меняются все записи.

как сделать, чтоб менялась только запись с id = 1 ?
...
Рейтинг: 0 / 0
17.04.2008, 17:01
    #35262622
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание триггера
А на запрос на UPDATE можно взглянуть?
И еще, напишите пож-ста так:

Код: plaintext
SET  NNN.date_begin 
...
Рейтинг: 0 / 0
17.04.2008, 19:40
    #35263009
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание триггера
Насонов Алексей
когда делаю update :

update functional_tasks set status = 0 where id = 1;

меняются все записи.

как сделать, чтоб менялась только запись с id = 1 ?
Выглядит чудовищно, но наверняка это просто недоразумение. Не верю я в настолько жуткие баги в DB2.
...
Рейтинг: 0 / 0
18.04.2008, 09:21
    #35263557
создание триггера
стал разбираться:

при update всех строк меняются все строки с status_id = 0.

как поправить триггер, чтобы он срабатывал только на изменение поля status_id ?
...
Рейтинг: 0 / 0
18.04.2008, 09:38
    #35263594
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание триггера
Насонов Алексейстал разбираться:

при update всех строк меняются все строки с status_id = 0.

Как написано, так и работает

как поправить триггер, чтобы он срабатывал только на изменение поля status_id ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TRIGGER  upd_fuctional_tasks
NO CASCADE BEFORE
UPDATE ON functional_tasks
REFERENCING NEW AS nnn OLD AS ooo
FOR EACH ROW
MODE DB2SQL
SET  nnn.date_begin = 
	case when nnn.status_id <> ooo.status_id
		then CURRENT TIMESTAMP
            else date_begin
                    end;
или, понимая более буквально,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TRIGGER  upd_fuctional_tasks
NO CASCADE BEFORE
UPDATE ON functional_tasks
REFERENCING NEW AS nnn OLD AS ooo
FOR EACH ROW
MODE DB2SQL 
when (nnn.status_id <> ooo.status_id)
SET  nnn.date_begin = CURRENT TIMESTAMP;
...
Рейтинг: 0 / 0
18.04.2008, 10:09
    #35263673
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание триггера
Насонов Алексейстал разбираться:

при update всех строк меняются все строки с status_id = 0.

как поправить триггер, чтобы он срабатывал только на изменение поля status_id ? CREATE TRIGGER upd_fuctional_tasks
NO CASCADE BEFORE
UPDATE of status_id ON functional_tasks
REFERENCING NEW AS nnn
FOR EACH ROW ...
...
Рейтинг: 0 / 0
18.04.2008, 10:15
    #35263692
создание триггера
спасибо, большое
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / создание триггера / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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