CREATE SEQUENCE SQL - Language Statements CREATE SEQUENCE Creates a new sequence number generator 1998-04-15 CREATE SEQUENCE seqname [INCREMENT increment] [MINVALUE minvalue] [MAXVALUE maxvalue] [START start] [CACHE cache] [CYCLE] 1998-04-15 Inputs seqname The name of a sequence to be created. increment The clause is optional. A positive value will make an ascending sequence, a negative one a descending sequence. The default value is 1. minvalue The optional clause determines the minimum value a sequence can be. The defaults are 1 and -2147483647 for ascending and descending sequences, respectively. maxvalue Use the optional clause to determine the maximum value for the sequence. The defaults are 2147483647 and -1 for ascending and descending sequences, respectively. start The optional enables the sequence to begin anywhere. The default starting value is minvalue for ascending sequences and maxvalue for descending ones. What happens if the user specifies start outside the range? cache The option enables sequence numbers to be preallocated and stored in memory for faster access. The minimum value is 1 (no cache) and this is also the default. CYCLE The optional CYCLE keyword may be used to enable the sequence to continue when the maxvalue or minvalue has been reached by an ascending or descending sequence respectively. If the limit is reached, the next number generated will be whatever the minvalue or maxvalue is, as appropriate. 1998-04-15 Outputs CREATE Message returned if the command is successful. ERROR: amcreate: ' seqname' relation already exists If the sequence specified already exists. 1998-04-15 Description CREATE SEQUENCE will enter a new sequence number generator into the current data base. This involves creating and initialising a new single block table with the name seqname. The generator will be "owned" by the user issuing the command. After the sequence is created, you may use the function nextval() with the sequence name as the argument to get a new number from the sequence. The function currval('sequence_name') may be used to determine the number returned by the last call to nextval() for the specified sequence in the current session. Use a query like SELECT * FROM sequence_name; to get the parameters of a sequence. Low-level locking is used to enable multiple simultaneous calls to a generator. 1998-04-15 Notes Refer to the DROP SEQUENCE statement to remove a sequence. Each backend uses its own cache to store allocated numbers. Numbers that are cached but not used in the current session will be lost. Usage Create an ascending sequence called serial, starting at 101: CREATE SEQUENCE serial START 101; Select the next number from this sequence SELECT NEXTVAL ('serial'); nextval ------- 114 Use this sequence in an INSERT: INSERT INTO distributors VALUES (NEXTVAL ('serial'),'nothing'); Compatibility CREATE SEQUENCE statement is a PostgreSQL language extension. 1998-04-15 SQL92 There is no CREATE SEQUENCE statement on SQL92.