LINUX.ORG.RU

Postgres как электронная таблица


0

1

Мне нужно автозаполнение столбца по определенному правилу, есть такая функциональность в БД? Как она называется? Пока приходится вручную составлять скрипт со значениями типа:

...
UPDATE table SET date=(date + interval '290 day') where trip=291;
UPDATE table SET date=(date + interval '291 day') where trip=292;
...

В данном случае мне нужно для каждой записи делать инкремент на один день начиная с определенной даты.

★★★★

Последнее исправление: ViTeX (всего исправлений: 1)

Ответ на: комментарий от Slavaz

Один trip - это 24 часа. Ещё есть временная метка, но дата с ней не совпадает, поскольку trip длится с первого дня по второй: date должен быть первым днём, второй день с определённого времени это уже следующий trip, но его date должна быть только второго дня, а не третьего. Начальная дата каждый год разная. Данный пример - конец первого года, поэтому значения одинаковые. Немного сумбурно, но думаю понятно.

ViTeX ★★★★
() автор топика
Ответ на: комментарий от anonymous

Это всё-таки тригера? Я там так и не понял, когда надо before, а когда after?

ViTeX ★★★★
() автор топика

И ещё небольшой вопросик, как сделать (тип данных timestamp):

SELECT * FROM table WHERE date=NULL;

Значение есть, но почему-то результатов не выдаёт.

ViTeX ★★★★
() автор топика

Можно сделать таблицу и view, во view выбирать все столбцы таблицы и ещё один вычисляемый.

Legioner ★★★★★
()
Ответ на: комментарий от namezys

А, блин, да это для view подходит. А в самой таблице такой финт можно сделать?

ViTeX ★★★★
() автор топика

Да, вроде как, мне нужны триггеры. Может кто объяснит, мне before или after нужно использовать?

Ладно, спасибо за помощь.

ViTeX ★★★★
() автор топика
Ответ на: комментарий от ViTeX

У тебя есть NEW. Если до - то ты можешь изменить NEW и он запишется в таблицу. Если after - то уже все записано, но возвращенный NEW влияет на returning

namezys ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.