Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在触发器函数中重置PostgreSQL序列_Sql_Postgresql_Database Trigger_Database Sequence - Fatal编程技术网

在触发器函数中重置PostgreSQL序列

在触发器函数中重置PostgreSQL序列,sql,postgresql,database-trigger,database-sequence,Sql,Postgresql,Database Trigger,Database Sequence,我有一个表counter\u registry,其中有一列priority\u number,其默认值来自nextval('counter\u registry\u priority\u number\u seq'::regclass)。My trigger函数(在插入之前运行)有一个代码段,在插入日期没有现有事务时重置序列: -- Restart the priority number sequence if current day is a new day IF (SELECT CASE W

我有一个表
counter\u registry
,其中有一列
priority\u number
,其默认值来自
nextval('counter\u registry\u priority\u number\u seq'::regclass)
。My trigger函数(在插入之前运行)有一个代码段,在插入日期没有现有事务时重置序列:

-- Restart the priority number sequence if current day is a new day
IF (SELECT CASE WHEN NOT EXISTS ( SELECT * FROM counter_registry WHERE transaction_date = now()::date ) THEN true ELSE false END) = true
    THEN PERFORM setval('counter_registry_priority_number_seq', 1);
END IF;
当我在新的一天从客户端应用程序向表中插入一条新记录时,
priority\u number
列从重置前序列的下一个部分获取其值,即使它已经被重置。后续插入遵循新的重置顺序,从1开始


如何正确地重置序列,在这之后,当我第一次插入时,我将获得更改序列的下一个值?

旁注:您不需要
CASE
构造,
存在(…)
已经产生一个布尔值。@wildplasser是的,对不起,我的错误。