Assigning a Starting Value for SERIAL8
The default serial starting number is 1, but you can assign
an initial value, n, when you create or alter the table. To
start the values at 1
in a SERIAL8 column of a table,
give the value 0
for the SERIAL8 column when you
insert rows into that table. The database server will assign the value 1
to
the SERIAL8 column of the first row of the table. The largest SERIAL8
value that you can assign is 263-1 (9,223,372,036,854,775,807).
If you assign a value greater than this, you receive a syntax error.
When the database server generates a SERIAL8 value of this maximum
number, it wraps around and starts generating values beginning at 1
.
After a nonzero SERIAL8 number is assigned, it cannot be changed. You can, however, insert a value into a SERIAL8 column (using the INSERT statement) or reset the SERIAL8 value n (using the ALTER TABLE statement), if that value does not duplicate any existing values in the column.
maximum existing value in SERIAL8 column + 1
For
example, if you reset the SERIAL8 value of the customer_num column
in the customer table to 50
, when the highest-assigned
customer number is 128, the next customer number assigned
is 129.
For information about using the SERIAL8 data type with the INT8 or BIGINT data type, see Using SERIAL8 and BIGSERIAL with INT8 or BIGINT