postgresql中如何查看seq的当前值?


因为做开发,会直接在数据库里修改各种id,导致seq值不一致。然后程序无法顺利添加新的记录。请问有什么方法可以查看某个表的当前seq值?

sequence PostgreSQL 数据库 seq

adoll8 9 years, 10 months ago

一般情况下, 一个sequence的名字,通常被命名为${table}idseq。

下面这个语句可以列出所有的seq:

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';

要得到最后一个值递增值,可以用下面的语句

SELECT last_value,  increment_by FROM example_id_seq;

要得到 下一个值,使用语句如下:

SELECT nextval('example_id_seq');

当执行完 nextval()后,你可以用currval()来查看 当前值

SELECT currval('example_id_seq');

注意: currval在一开始是没有值的。

bobgb answered 9 years, 10 months ago

Your Answer