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;
...

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

★★★★

trip как-то коррелирует с наращиваемым интервалом?

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

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

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

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

ViTeX ★★★★ ()

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

SELECT * FROM table WHERE date=NULL;

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

ViTeX ★★★★ ()

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

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

А есть где-нибудь примеры, где столбцы вычисляемы?

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

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

ViTeX ★★★★ ()

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

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

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

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

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