Creating and Managing Sequences
Context
A sequence is a database object that generates unique integers. Sequence numbers are generated according to a certain rule. Sequences are unique because they increase automatically. This is why they are often used as primary keys.
- Set the data type of a column to sequence integer. A sequence will be automatically created by the database for this column.
- Run the CREATE SEQUENCE statement to create a sequence. Set the initial value of the nextval('sequence_name') function to the default value of a column.
Procedure
1 2 3 4 5 |
gaussdb=# CREATE TABLE T1 ( id serial, name text ); |
If the following information is displayed, the creation is successful:
1
|
CREATE TABLE |
Method 2: Create a sequence and set the initial value of the nextval('sequence_name') function to the default value of a column.
- Create a sequence.
1
gaussdb=# CREATE SEQUENCE seq1 cache 100;
If the following information is displayed, the creation is successful:
1
CREATE SEQUENCE
- Set the default value of a column so that the column has a unique identification attribute.
1 2 3 4 5
gaussdb=# CREATE TABLE T2 ( id int not null default nextval('seq1'), name text );
If the following information is displayed, the default value has been specified:
1
CREATE TABLE
- Associate a sequence with a column.
Associate a sequence with a specified column included in a table. In this way, the sequence will be deleted when you delete its associated column or the table where the column belongs to.
1
gaussdb=# ALTER SEQUENCE seq1 OWNED BY T2.id;
If the following information is displayed, the operation is successful:
1
ALTER SEQUENCE
The preceding methods are similar, except that the second method specifies cache for the sequence. A sequence having cache defined has inconsecutive values (such as 1, 4, and 5) and cannot maintain the order of its values. After the dependent column of a sequence has been specified, once the sequence is deleted, the sequence of the dependent will be deleted. A sequence shared by multiple columns is not forbidden in a database, but you are advised not to do that.
In the current version, you can specify the auto-increment column or set the default value of a column to nextval('seqname') when defining a table. You cannot add an auto-increment column or a column whose default value is nextval('seqname') to an existing table.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot