Synopsis
Use the setval(sequence_name, value, is_called)
function to set and return the value for the specified sequence.
UPDATE
privilege on the sequence is required to call this function.
Calling the function with two parameters defaults is_called
to true
, meaning that the nextval
will advance the sequence prior to returning the value, and currval
will also return the specified value.
When called with is_called
set to false
, nextval
will return the specified value and the value reported by currval
will not be changed.
setval()
returns just the value of its second argument.
Semantics
sequence_name
Specify the name of the sequence.
value
Specify the value of the sequence.
is_called
Set is_called
to true
or false
.
Examples
Create a sequence
yugabyte=# CREATE SEQUENCE s;
CREATE SEQUENCE
Use setval
with is_called
set to true
:
yugabyte=# SELECT setval('s', 21);
yugabyte=# SELECT setval('s', 21, true); -- the same command as above
yugabyte=# SELECT nextval('s');
nextval
---------
22
(1 row)
Use setval
with is_called
set to false
:
yugabyte=# SELECT setval('s', 21, false);
yugabyte=# SELECT nextval('s');
nextval
---------
21
(1 row)
Note
setval
changes are immediately visible in other transactions and are not rolled back if the transaction is rolled back.