PostgreSQL中实现自增的方式

本文介绍了PostgreSQL中实现自增字段的三种方式:IDENTITY、SEQUENCE和Serial。IDENTITY是SQL标准推荐的方式,系统后台会自动创建序列;SEQUENCE需要预先定义序列,表删除后序列仍保留;Serial则会自动生成序列,与表关联,删除表时序列一同删除。
摘要由CSDN通过智能技术生成

PG中实现自增字段的三种方式:

  • 标识列 (IDENTITY)
  • 序列 (SEQUENCE)
  • Serial类型

自增字段主要用于实现自增主键或生成唯一版本号

1.1 标识列 (IDENTITY)

标识列是SQL标准推荐实现自增的方式

示例
CREATE TABLE t_user (
    user_id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY ,
    user_name varchar(50) NOT NULL UNIQUE
)
INSERT INTO t_user (user_name) value ('tony')

说明:

  • 创建一个名为t_user的表 CREATE TABLE t_user ()

  • 字段user_id为integer类型 user_id integer

    定义为标识列且总是按照标识列生成(由系统生成) GENERATED ALWAYS AS IDENTITY

    定义为主键 PRIMARY KEY

  • 字段user_name为varchar类型

    约束其不为空且唯一 NOT NULL UNIQUE

  • 插入一条数据 INSERT INTO t_user (user_name) value (‘tony’)

    由于user_id是使用标识列实现的自增主键 由系统赋值 因此插入时只需指定user_name的值即可

原理

定义标识列之后系统后台会自动创建并维护一个名为tablename_column_seq的序列 基于此序列生成自增数据

-- SEQUENCE: public.t_user_user_id_seq

-- DROP SEQUENCE IF EXISTS public.t_user_user_id_seq;

CREATE SEQUENCE IF NOT EXISTS 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值