Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггер, записать в поле таблицы время изменения другого поля / 2 сообщений из 2, страница 1 из 1
29.11.2016, 11:41
    #39356677
Триггер, записать в поле таблицы время изменения другого поля
Есть таблица:автор
Код: sql
1.
2.
3.
4.
поле 1,
поле 2,
...
ext_processed


Надо при изменении поля ext_processed сохранить время этого изменения.
Добавил поле:
ext_date_upd_ext_processed datetime DEFAULT NULL
и пытаюсь сделать триггер:
автор
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE 
	DEFINER = 'MyUser'@'%'
TRIGGER MyBD.trigger1
	BEFORE UPDATE
	ON MyBDx.receipt
	FOR EACH ROW
BEGIN
   if old.ext_processed=0 and new.ext_processed=1 then
      update receipt ss set ss.ext_date_upd_ext_processed=now();
   end if;
END


Пробовал и BEFORE и AFTER
алиас тоже добавлял/убирал (ss)
Вот ошибка:
Код: plsql
1.
2 Can't update table 'receipt' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. SQL.sql 3 8 



Где то недопонимаю.
...
Рейтинг: 0 / 0
29.11.2016, 11:45
    #39356686
Триггер, записать в поле таблицы время изменения другого поля
Алексей Стрекалов, Закрывайте, разобрался.
Спасло:
Код: plsql
1.
2.
3.
4.
5.
6.
BEGIN
   if old.ext_processed=0 and new.ext_processed=1 then
      ##update receipt ss set ss.ext_date_upd_ext_processed=now();
      SET NEW.ext_date_upd_ext_processed = now();
   end if;
END
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Триггер, записать в поле таблицы время изменения другого поля / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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