每天将自动增量列重置为0

时间:2010-01-08 03:10:33

标签: database postgresql auto-increment

在postgresql中是否有办法让每天在指定时间将自动递增列重置为零?

2 个答案:

答案 0 :(得分:6)

使用cronjob可能非常简单

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

或者,你可以设置你的“串行”列DEFAULT来调用存储过程,它会检查一天翻转,如果合适的话重置序列,然后返回nextval()的结果。

但除此之外,不,我不会指望有一个神奇的ALTER SEQUENCE my_seq RESET AT INERVAL'1 day'或类似的东西。

编辑:纳入了duckyfuzz的评论。

答案 1 :(得分:6)

基本上你可以用这个重置序列:

ALTER SEQUENCE your_sequence_name RESTART WITH 1;

...享受