PostgreSQL --序列与自增id的秘密
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,一、PostgreSQL的自增id serial1.2、serial的本质我们在创建表时,经常需要使用到自增id,往往这么写,create table test ( id serial, #使
千家信息网最后更新 2025年11月08日PostgreSQL --序列与自增id的秘密
一、PostgreSQL的自增id serial
1.2、serial的本质
我们在创建表时,经常需要使用到自增id,往往这么写,
create table test ( id serial, #使用serial来创建一个自增id name varchar(64) not null ) 通过serial创建自增id,同时会创建属于这个表的自增序列,并将id字段设置为not nullserial和bigserial类型不是真正的类型,只是为在表中设置唯一标识做的概念上的便利,本质上是创建了一个序列发生器,然后把自增字段的默认值设置为这个序列发生器的nextval
CREATE TABLE tablename ( colname SERIAL);等价于CREATE SEQUENCE tablename_colname_seq;CREATE TABLE tablename( colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL);1.2、序列的属性
postgres=# \d+ test5_id_seq Sequence "public.test5_id_seq"Column | Type | Value | Storage ---------------+---------+---------------------+--------- sequence_name | name | test5_id_seq | plain last_value | bigint | 1 | plain start_value | bigint | 1 | plain #序列起始值 increment_by | bigint | 1 | plain #每次递增值 max_value | bigint | 9223372036854775807 | plain #最大值 min_value | bigint | 1 | plain #最小值 cache_value | bigint | 1 | plain log_cnt | bigint | 0 | plain is_cycled | boolean | f | plain #是否循环 is_called | boolean | f | plainOwned by: public.test5.id因为自增本质上是取序列发生器的下一个值,所以可以多个表共用一个序列发生器,可以实现多表唯一值,当然,还可以设置序列是否可循环来实现id循环
例如:
二、序列
2.1创建序列
CREATE SEQUENCE name increment by 1 maxvalue 10 minvalue 1 start 1 cycle2.2、序列操作
下一个值:nextval(regclass)当前值:currval(regclass)设置值:setval(regclass)2.3、将序列绑定到表
create table test_seq ( id int not null default nextval('my_seq1'), name varchar(64) )
序列
发生器
本质
字段
类型
循环
最大
最小
会创
只是
同时
多个
属性
最大值
标识
概念
等价
中设
并将
起始
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
平乐古城服务器
celery执行数据库查询任务
淮南网络安全和信息化委员会
影子哀伤服务器
创服务器
缓存服务器 硬件
数据库产品哪个好
黄山区直销软件开发技术哪家好
曹妃甸区企业网络技术售后保障
常熟联想服务器维修
静安区智能化软件开发定制介绍
服务器安全狗 无法打补丁
渤海大学数据库题库
维护网络安全我们能做些什么
一个网站两个服务器
SEO天天网络安全教育
内测服务器简称什么意思
广电鲲鹏服务器什么规格
gdb数据库能直接拷贝吗
E4A数据库添加列
网络技术工作经验分析
软件开发中的适配器是什么
计算机网络技术可以报考的
我的世界服务器日志在哪里看
虹口区服务软件开发统计
软件开发创业背景分析
大数据数据库技术展望
武术数据库
软件开发工作职责和要求
如何重视网络安全管理