Postgre SQL   发布时间:2022-05-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PostgreSQL 序列使用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在数据库中主键的生成一般是通过序列来生成,PG的序列知识主要罗列如下:

1.PG序列的创建

方法a:直接在表中指定字段类型是 seriaL 类型就一了

create table person (   ID   seriaL,@R_35_4687@T  );@H_197_7@ 方法b:先创建序列名称,然后在新建的表中列属性指定序列就可以了,该列需INT类型列 
create sequence person_ID_seq; 
create table person (   ID   INT4 NOT NulL DEFAulT nextval('person_ID_seq'),@R_35_4687@T );@H_197_7@ 2.PG序列的应用 

查看当前会话的序列值
SELECT currval('person_ID_seq') ;@H_197_7@ 查看下一个序列值 
SELECT nextval('person_ID_seq') ;@H_197_7@ 查看全局的最后一个序列值 
SELEct last_value from person_ID_seq;@H_197_7@ 重置序列值 
SELEct SETVAL(seq_name,new_seq_value);@H_197_7@ 

3.序列删除当有表字段应用到PG序列时不能直接删除
drop table table_name;
drop sequence seq_name;

4.其他说明 a.currval取得的是当前会话的序列值,在当前会话中该值不会因为其他会话取了nextval而变化。会变化的是全局的last_value值,并且当前会话中如果没有读过nextval值时直接读currval是会报错的。 b.对于序列是由建表时指定serial时创建时,删除该表的同时,对应的序列也会被删除。 c.表主键数据可以用跟表相关的序列,也可以用其他序列,但不推荐,只是PG默认它没错。 d.为使多用户并发下同一个序列取值不会重复,nextval是不会rollBACk的,不过可以使用SETVAL重置

大佬总结

以上是大佬教程为你收集整理的PostgreSQL 序列使用全部内容,希望文章能够帮你解决PostgreSQL 序列使用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: