PostgreSql 设置自增字段

一、概述

  序列类型是 PostgreSQL 特有的创建一个自增列的方法。包含 smallserial、serial和 bigserial 类型,它们不是真正的类型,只是为了创建唯一标识符列而存在的方便符号。其本质也是调用的序列,序列详情可参考:《PostgreSql 序列

二、使用示例

postgres=# create table test(id serial primary key,name varchar);
CREATE TABLE
postgres=# \d test
                                 Table "public.test"
 Column |       Type        | Collation | Nullable |             Default
--------+-------------------+-----------+----------+----------------------------------
 id     | integer           |           | not null | nextval('test_id_seq'::regclass)
 name   | character varying |           |          |
Indexes:
    "test_pkey" PRIMARY KEY, btree (id)
postgres=# insert into test(name) values('zhao'),('qian'),('sun');
INSERT 0 3
postgres=# select * from test;
 id | name
----+------
  1 | zhao
  2 | qian
  3 | sun
(3 rows)

--上述等价于
postgres=# create table test(id int primary key,name varchar);
CREATE TABLE
postgres=# create sequence test_id_seq start with 1 increment by 1 no minvalue no maxvalue cache 1;
CREATE SEQUENCE
postgres=# alter table test alter column id set default nextval('test_id_seq');
ALTER TABLE
postgres=# \d test
                                 Table "public.test"
 Column |       Type        | Collation | Nullable |             Default
--------+-------------------+-----------+----------+----------------------------------
 id     | integer           |           | not null | nextval('test_id_seq'::regclass)
 name   | character varying |           |          |
Indexes:
    "test_pkey" PRIMARY KEY, btree (id)

postgres=# insert into test(name) values('zhao'),('qian'),('sun');
INSERT 0 3
postgres=# select * from test;
 id | name
----+------
  1 | zhao
  2 | qian
  3 | sun
(3 rows)

相关推荐

  1. PostgreSql 设置字段

    2023-12-16 12:28:02       72 阅读
  2. 如何为PostgreSQL设置主键?

    2023-12-16 12:28:02       42 阅读
  3. PostgreSQL解决序列(id)自动增长冲突

    2023-12-16 12:28:02       50 阅读
  4. pgsql已有表设置主键

    2023-12-16 12:28:02       37 阅读
  5. sqlite在非主键创建一个字段

    2023-12-16 12:28:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 12:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 12:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 12:28:02       82 阅读
  4. Python语言-面向对象

    2023-12-16 12:28:02       91 阅读

热门阅读

  1. Python中的列表与数组

    2023-12-16 12:28:02       65 阅读
  2. 使用Python将HTML快速转换成PDF

    2023-12-16 12:28:02       63 阅读
  3. 三种决策树算法

    2023-12-16 12:28:02       48 阅读
  4. 前端面试题:什么是对称加密和非对称加密?

    2023-12-16 12:28:02       60 阅读
  5. 低频量化日报

    2023-12-16 12:28:02       49 阅读
  6. P6492 [COCI2010-2011#6] STEP 题解

    2023-12-16 12:28:02       42 阅读
  7. docker 清除不用的容器数据

    2023-12-16 12:28:02       51 阅读
  8. 电子显示器件:现代信息显示技术的核心

    2023-12-16 12:28:02       60 阅读
  9. VueRouter的编程式导航和导航守卫

    2023-12-16 12:28:02       53 阅读