PostgreSql 序列

什么是PostgreSql:https://www.postgresql.org/about/
有关PostgreSql序列使用:https://www.cnblogs.com/alianbog/p/5654604.html
按照以往Oracle建表的流程,我们来新建表,并且向表中导入数据。
1.创建Book表
CREATE TABLE book(  id INTEGER PRIMARY KEY ,  name CHARACTER VARYING(50),  price DOUBLE PRECISION,  author CHARACTER VARYING(20));
PRIMARY KEY 将id设置为主键;
 
2.创建自动增长序列
CREATE SEQUENCE book_id_seq  START WITH 1  INCREMENT BY 1  NO MINVALUE  NO MAXVALUE  CACHE 1;
参数
   描述
  START WITH
   设置起始值,允许序列从任何地方开始
  INCREMENT BY
   设置增量,指定在哪个值得基础上创建新值,正值将产生递增序列,负值将产生递减序列;默认值为1。
  NO MINVALUE
   设置序列可以生成的最小值,如果未指定NO MINVALUE,对于升序和降序序列,默认值分别为1和。
  NO MAXVALUE
   设置序列可以生成的最大值,如果未指定此子句,将使用默认值,对于升序和降序序列,默认值为和-1。
  CACHE
   设置高速缓存,要分配多少序列号并将其存贮在内存中方便更快的访问,最小值为1,默认值也是1。
  3.为book表添加自动增长序列
ALTER TABLE book ALTER COLUMN id SET DEFAULT nextval('book_id_seq');
4.向book表Insert数据
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《本色》',30.5,'乐嘉');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《平凡世界》',90.5,'路遥');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Java编程思想》',60.5,'詹姆斯·高斯林');
INSERT INTO public.book VALUES (nextval('book_id_seq'),'《Web高级编程》',50.5,'李三');
5.查询book表中数据
SELECT * FROM public.book;
查询结果:
 
6.相关序列操作:
--查询序列 (每查询一次,序列就做了一次+1操作,即查询下一次的value)
SELECT nextval('book_id_seq');
--移除序列
DROP SEQUENCE 'book_id_seq';

原文链接:https://blog.csdn.net/qq_37464248/article/details/82769868
原文地址:https://www.cnblogs.com/xibuhaohao/p/12166960.html