PostgreSQL --序列与自增id的秘密
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,一、PostgreSQL的自增id serial1.2、serial的本质我们在创建表时,经常需要使用到自增id,往往这么写,create table test ( id serial, #使
千家信息网最后更新 2025年01月25日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 null
serial和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 cycle
2.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安全错误
数据库的锁怎样保障安全
华为平板不可以安装数据库软件吗
用数据库报表开发工具
fpga软件开发包
税务分局网络安全管理员
dhcp服务器怎么关闭
金融科技和移动互联网
战地5 可以换服务器吗
达梦数据库管理服务器在哪
塔式服务器内存安装
数据库技术在行业上的应用
手机怎么修改服务器网关
中国国防网络安全投入
服务器启动提示键盘错误
西安互联网软件开发
山西通信软件开发服务检测中心
郴州java软件开发
校园网网络技术的应用
2k20服务器保留多久
腾讯云服务器是干嘛的
诸城关文网络技术有限公司
海银财富软件开发加班
贵州软件开发专业服务
excle表格服务器
苹果7p尚未备份连接服务器失败
上海大专计算机网络技术工资
数据库用函数值输入系统时间
三丰云服务器免费设置
云服务器无盘
什么数据库最安全
瑞昱的软件开发环境