Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер before update / 6 сообщений из 6, страница 1 из 1
14.09.2005, 16:58
    #33269600
Mariuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before update
Есть две таблицы одна с актуальной информацией (т.е. действительной на данный момент времени) и другая с устаревшей. Структура таблиц одинаковая. Пишется триггер before update для таблицы с актуальной информацией, его задача перенести запись которая была до обновления в таблицу с устаревшей информацией. Причем если эта запись переносится в таблицу с устаревшей информацией первый раз за сегодня она добавляется, если второй раз, тогда обновлется уже добавленная в этот день.
Подскажите пожалуйста как обновить запись в устаревшей таблице не перечисляя все поля
Пробовал
Update old_people from OLD where ......
Update old_people set (OLD.*) where .....
Оба варианта не работают. Перечисляю после set все поля - всё работает, условие после where во всех трех вариантах одинаковое.
Для добавления пишу
insert into old_people values (OLD.*) все работает.
Буду благодарен за любые советы.
...
Рейтинг: 0 / 0
14.09.2005, 17:05
    #33269623
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before update
DELETE FROM old_people WHERE pkey = OLD.pkey
INSERT INTO old_people VALUES (OLD.*)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
14.09.2005, 17:15
    #33269654
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before update
или как вариант всегда обновляй(UPDATE) если GET DIAGNOSTIC ROW_COUNT =0 тогда вставляй... это будет быстрее delete ; insert т.к во всех случаях кроме первой вставки будет выполнятся только один запрос а не 2.
...
Рейтинг: 0 / 0
14.09.2005, 17:16
    #33269658
Mariuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before update
XM
DELETE FROM old_people WHERE pkey = OLD.pkey
INSERT INTO old_people VALUES (OLD.*)
Posted via ActualForum NNTP Server 1.3

Спасибо за мысль но тогда уж
DELETE FROM old_people WHERE pkey = OLD.pkey and date=current_date
INSERT INTO old_people VALUES (OLD.*)

Но я то думал что вопрос всего лишь в синтаксисе, что должно быть стандартное решение, а не в обход.
...
Рейтинг: 0 / 0
14.09.2005, 17:26
    #33269686
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before update
помойму в апдейте полюбому надо все поля перечислять..
...
Рейтинг: 0 / 0
14.09.2005, 17:38
    #33269720
Mariuz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before update
wbearпомойму в апдейте полюбому надо все поля перечислять..

А если их 250? Сложновато пришлось бы.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер before update / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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