Сброс автоинкрементного столбца обратно в 0 ежедневно - PullRequest
5 голосов
/ 08 января 2010

Есть ли в postgresql способ автоматически возвращать в ноль столбец с автоинкрементом в указанное время каждый день?

Ответы [ 2 ]

6 голосов
/ 03 ноября 2010

По сути, вы можете сбросить последовательность с этим:

ALTER SEQUENCE your_sequence_name RESTART WITH 1;

Наслаждайтесь ...

6 голосов
/ 08 января 2010

Это может быть довольно тривиально с cronjob

0 0 * * * echo "SELECT setval('public.my_table_id_seq', 1, false)" | psql -U my_db_user -d my_db_name

В качестве альтернативы, вы можете установить свой «серийный» столбец ПО УМОЛЧАНИЮ для вызова хранимой процедуры, которая будет проверять наличие переноса на день, сбрасывать последовательность при необходимости и затем возвращать результат nextval ().

Но кроме этого, нет, я не ожидал бы, что есть волшебство ALTER SEQUENCE my_seq RESET AT INERVAL '1 день' или что-то в этом роде.

Редактировать: добавлен комментарий duckyfuzz.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...