如何在不推进光标的情况下获得nextval?

时间:2013-01-05 22:13:22

标签: postgresql

如何在不推进PostgreSQL游标的情况下获得nextval?

这不起作用:

pgdb=# SELECT curval('schemas.category_category_id_seq');
ERROR:  function curval(unknown) does not exist
LINE 1: SELECT curval('schemas.category_category_id_seq');
           ^

提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

2 个答案:

答案 0 :(得分:1)

据我所知,你的功能名称是错误的。这是“currval”。见https://dba.stackexchange.com/questions/3281/how-do-i-use-currval-in-postgresql-to-get-the-last-inserted-id

顺便说一句,如果你可以假设你的序列只增加1,你可以这样做:

select currval('schemas.category_category_id_seq') + 1;

答案 1 :(得分:1)

PostgreSQL's nextval() function是安全的。但是currval()+ 1不是。