PostgreSQL創(chuàng)建自增序列、查詢序列及使用序列代碼示例
序列函數(shù):
| 函數(shù) | 返回類型 | 描述 |
| nextval(regclass) | bigint | 遞增序列對象到它的下一個數(shù)值并且返回該值。這個動作是自動完成的。即使多個會話并發(fā)運行nextval,每個進程也會安全地收到一個唯一的序列值。 |
| currval(regclass) | bigint | 在當前會話中返回最近一次nextval抓到的該序列的數(shù)值。(如果在本會話中從未在該序列上調用過 nextval,那么會報告一個錯誤。)請注意因為此函數(shù)返回一個會話范圍的數(shù)值,而且也能給出一個可預計的結果,因此可以用于判斷其它會話是否執(zhí)行過nextval。 |
| lastval() | bigint | 在當前會話中返回最近一次nextval抓到的該序列的數(shù)值。(如果在本會話中從未在該序列上調用過 nextval,那么會報告一個錯誤。)請注意因為此函數(shù)返回一 返回當前會話里最近一次nextval返回的數(shù)值。這個函數(shù)等效于currval,只是它不用序列名為參數(shù),它抓取當前會話里面最近一次nextval使用的序列。如果當前會話還沒有調用過nextval,那么調用lastval將會報錯。 |
| setval(regclass, bigint) | bigint | 重置序列對象的計數(shù)器數(shù)值。設置序列的last_value字段為指定數(shù)值并且將其is_called字段設置為true,表示下一次nextval將在返回數(shù)值之前遞增該序列。 |
| setval(regclass, bigint, boolean) | bigint | 重置序列對象的計數(shù)器數(shù)值。功能等同于上面的setval函數(shù),只是is_called可以設置為true或false。如果將其設置為false,那么下一次nextval將返回該數(shù)值,隨后的nextval才開始遞增該序列。 |
CREATE SEQUENCE 創(chuàng)建序列
CREATE SEQUENCE "user_id_seq"
START WITH 1 --開始值
INCREMENT BY 1 --每次新增數(shù)
NO MINVALUE --無最小值
NO MAXVALUE --無最大值
CACHE 1; --緩存序列數(shù)量ALTER SEQUENCE 修改序列:
ALTER SEQUENCE "user_id_seq"
START WITH 1 --開始值
INCREMENT BY 1 --每次新增數(shù)
NO MINVALUE --無最小值
NO MAXVALUE --無最大值
CACHE 1; --緩存序列數(shù)量nextval查詢下一個序列值:
SELECT nextval('user_info_id_seq')currval查詢當前序列值:
SELECT currval('user_info_id_seq')批量設置表自增序列值最大值:
SELECT
'SELECT SETVAL(''' || SUBSTRING ( sequence_name FROM '^(.*)[_]id_seq$' ) || '_id_seq'', (SELECT (MAX(id) + 1) FROM ' || SUBSTRING ( sequence_name FROM '^(.*)[_]id_seq$' ) || ') , true);' AS SQL
FROM
information_schema.sequences總結
到此這篇關于PostgreSQL創(chuàng)建自增序列、查詢序列及使用序列的文章就介紹到這了,更多相關pgsql創(chuàng)建自增序列查詢序列內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在windows下手動初始化PostgreSQL數(shù)據(jù)庫教程
在windows下手動初始化PG,是一件比較麻煩的事,下面我具體寫一下過程,大家做一下參考。2014-09-09
PostgreSQL基于Citus實現(xiàn)分布式集群的全過程
Citus是一個PostgreSQL擴展,它將Postgres轉換為分布式數(shù)據(jù)庫,因此您可以在任何規(guī)模上實現(xiàn)高性能,因客戶的需求,本文詳細闡述了PostgreSQL基于Citus實現(xiàn)的分布式集群的全過程,需要的朋友可以參考下2023-11-11
使用pg_basebackup對Postgre進行備份與恢復的實現(xiàn)
使用PostgreSQL創(chuàng)建高級搜索引擎的代碼示例
PGSQL實現(xiàn)判斷一個空值字段,并將NULL值修改為其它值
使用PostgreSQL數(shù)據(jù)庫建立用戶畫像系統(tǒng)的方法
postgresql 數(shù)據(jù)庫 與TimescaleDB 時序庫 join 在一起

