LINUX.ORG.RU

PostgreSQL


0

0

Есть вот такая табличка в сабже:
CREATE TABLE logger (
  date date default NULL,
  time time default NULL,
  elapsed decimal(10,0) default NULL,
  bill double precision default NULL,
  code smallint NOT NULL default '0',
  status decimal(3,0) default NULL,
  bytes double precision default NULL,
  url character varying(255) default NULL,
  userident character varying(15) default NULL,
  host character varying(15) default NULL
);
Как можно средствами сабжа ограничить число записей в этой таблице допустим до 31 т.е. если происходит 32 запись 1 удаляется. (метод fifo первый вошёл первый вышел).
anonymous

Прошу прощения неправильно задал вопрос. Как можно сделать так чтоб в этой таблице хранились записи только за 31 день месяца? т.е. допустим в таблице хранятся записи с 2006-01-01 по 2006-01-31, при занесении данных за 2006-02-01, запись за 2006-01-01 автоматически удаляется. Такое вообще возможно задать параметрами в сабже?

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

Чёто не получается у меня функция которую вызывал бы триггер... Как получить кол-во дней? Какой тип данных для этой переменной использовать? Как потом построить удаление записей с помощью этой переменной? Помогите пожалуйста в написании этой ф-ции или хоть ткните носом чего почитать, желательно на русском.

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

Это же база данных. Пусть записи копятся. Если их становиться очень много, то их можно куда-нибудь архивировать в другое место. Или, как в этом случае, можно просто удалять при условии, что дата больше 31 дней. Процесс ахривации (или удаления) лучше запускать отдельным процессом, например, раз в сутки.

Зачем удалять старые записи сразу при поступлении новых?

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

>ткните носом чего почитать

у постгреса есть документация. ее и читай. там все понятно. но на английском.

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

Блин а ведь разобрался :) delete from logger where CURRENT_DATE-date>31

Всем спасибо!

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