云数据库 GAUSSDB-CREATE SEQUENCE:示例

时间:2024-11-02 18:49:43

示例

  • 创建一个名为seq1的递增序列,从101开始,步长为10。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    gaussdb=# CREATE SEQUENCE seq1
        START 101
        INCREMENT 10;
    
    --从序列中选出下一个数字:
    gaussdb=# SELECT nextval('seq1');
     nextval 
    ---------
         101
    (1 row)
    gaussdb=# SELECT nextval('seq1');
     nextval 
    ---------
         111
    
    --删除序列。
    gaussdb=# DROP SEQUENCE seq1;
    
  • 表自增列的一种实现。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    --创建表。
    gaussdb=# CREATE TABLE test1(id int PRIMARY KEY, name varchar(20));
    
    --创建与表关联的序列。
    gaussdb=# CREATE SEQUENCE test_seq2
        START 1
        NO CYCLE
        OWNED BY test1.id;
    
    --设置字段的默认值。
    gaussdb=# ALTER TABLE test1 ALTER COLUMN id SET DEFAULT nextval('test_seq2'::regclass);
    
    -- 插入数据。
    gaussdb=# INSERT INTO test1 (name) values ('Joe'),('Scott'),('Ben');
    
    --查询。
    gaussdb=# SELECT * FROM test1;
     id | name  
    ----+-------
      3 | Ben
      1 | Joe
      2 | Scott
    (3 rows)
    
    --删除序列和表。
    gaussdb=# DROP SEQUENCE test_seq2 CASCADE;
    gaussdb=# DROP TABLE test1;
    
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0565.html