位置: 编程技术 - 正文
推荐整理分享深入解读PostgreSQL中的序列及其相关函数的用法(深入解读何暮楚),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:深入解读的近义词,深入解读边缘型人格障碍,深入解读我本是高山,深入解读何暮楚,深入解读CIA含金量,深入解读政策,深入解读政策,深入解读政策,内容如对您有帮助,希望把文章链接给更多的朋友!
一、简介
序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。
二、创建序列
方法一:直接在表中指定字段类型为serial 类型
方法二:先创建序列名称,然后在新建的表中列属性指定序列就可以了,该列需int 类型
创建序列的语法:
实例:
三、查看序列
查看序列属性
四、序列应用
4.1 在INSERT 命令中使用序列
4.2 数据迁移后更新序列
五、序列函数
下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法。
5.1 查看下一个序列值
5.2 查看序列最近使用值
5.3 重置序列
方法一:使用序列函数
效果同a. setval(regclass, bigint)方法二:修改序列
修改序列的语法:
实例:
六、删除序列
语法:
当有表字段使用到PG序列时,不能直接删除。
说明:对于序列是由建表时指定serial 创建的,删除该表的同时,对应的序列也会被删除。
七、其他说明 a.currval取得的是当前会话的序列值,在当前会话中该值不会因为其他会话取了nextval而变化。会变化的是全局的last_value值,并且当前会话中如果没有读过nextval值时直接读currval是会报错的。 b.对于序列是由建表时指定serial时创建时,删除该表的同时,对应的序列也会被删除。 c.表主键数据可以用跟表相关的序列,也可以用其他序列,但不推荐,只是PG默认它没错。 d.为使多用户并发下同一个序列取值不会重复,nextval是不会rollback的,不过可以使用setval重置如果一个序列对象是带着缺省参数创建的,那么对它调用 nextval 将返回从1 开始的后续的数值。 其它的行为可以通过使用 CREATE SEQUENCE 命令里的 特殊参数获取;参阅其命令参考页获取更多信息。e.为了避免从同一个序列获取数值的当前事务被阻塞, nextval 操作决不会回滚;也就是说,一旦一个数值已经被抓走, 那么就认为它已经用过了,即使调用 nextval 的事务后面又退出了也一样。这就意味着退出的事务可能在序列赋予的数值中留下"空洞"。 setval 操作也决不回滚。
PostgreSQL中常用的时间日期脚本使用教程 获取系统时间函数selectnow();----::.+selectcurrent_timestamp;----::.+selectcurrent_date;----selectcurrent_time;--::.+时间的
Mac OS上安装PostgreSQL的教程 容我开头??乱幌隆R恢币岳矗?液MySQL这位久经考验的老朋友合作愉快。但自从了解了一点PostgreSQL后,对其丰富的功能特性就十分着迷。比如字段类型原生
Linux CentOS 7安装PostgreSQL9.3图文教程 如题,本篇blog记录一下在LinuxCentOS7中安装PostgresSQL的整个过程以及数据库配置等,在Linux系统中,PostgreSQL的安装方式分两种,分别是:1、二进制安装包
标签: 深入解读何暮楚
本文链接地址:https://www.jiuchutong.com/biancheng/312217.html 转载请保留说明!友情链接: 武汉网站建设