在postgresql中是否有办法让每天在指定时间将自动递增列重置为零?
答案 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;
...享受