PostgreSql 使用自定義序列(Sequence)向表插入數據


最近公司使用到了PostgreSql,哈哈,這個SQL之前基本上沒有用過,既然公司使用到了,那就學習一下吧,記一篇小筆記;

什么是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設置為主鍵;

數據類型
類型名稱    別名    描述
integer    int,int4    有正負之分的4字節整數
character varying [ (n) ]    varchar [ (n) ]    
可變長度的字符串

double precision    float8    雙精度浮點數(8字節)
更多類型請參考文檔:https://www.postgresql.org/docs/9.3/static/datatype.html

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';

 


 

 

 


---------------------
作者:搬磚建高樓
來源:CSDN
原文:https://blog.csdn.net/qq_37464248/article/details/82769868
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM