PostgreSQL創(chuàng)建自增序列、查詢序列及使用序列代碼示例
更新時間:2023年11月08日 10:01:12 作者:碼農(nóng)阿福
數(shù)據(jù)庫中主鍵的生成一般是通過序列來生成,下面這篇文章主要給大家介紹了關于PostgreSQL創(chuàng)建自增序列、查詢序列及使用序列的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
序列函數(shù):
| 函數(shù) | 返回類型 | 描述 |
| nextval(regclass) | bigint | 遞增序列對象到它的下一個數(shù)值并且返回該值。這個動作是自動完成的。即使多個會話并發(fā)運行nextval,每個進程也會安全地收到一個唯一的序列值。 |
| currval(regclass) | bigint | 在當前會話中返回最近一次nextval抓到的該序列的數(shù)值。(如果在本會話中從未在該序列上調(diào)用過 nextval,那么會報告一個錯誤。)請注意因為此函數(shù)返回一個會話范圍的數(shù)值,而且也能給出一個可預計的結果,因此可以用于判斷其它會話是否執(zhí)行過nextval。 |
| lastval() | bigint | 在當前會話中返回最近一次nextval抓到的該序列的數(shù)值。(如果在本會話中從未在該序列上調(diào)用過 nextval,那么會報告一個錯誤。)請注意因為此函數(shù)返回一 返回當前會話里最近一次nextval返回的數(shù)值。這個函數(shù)等效于currval,只是它不用序列名為參數(shù),它抓取當前會話里面最近一次nextval使用的序列。如果當前會話還沒有調(diào)用過nextval,那么調(diào)用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)建自增序列查詢序列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PostgreSQL的 archive_mode 參數(shù)配置示例詳解
本文詳細介紹了PostgreSQL的archive_mode參數(shù),包括其三個選項(off、on、always)的對比和使用場景,以及在不同模式下的配置和行為特點,感興趣的朋友跟隨小編一起看看吧2025-11-11
Vcenter清理/storage/archive空間的處理方式
通過SSH登陸到Vcenter并檢查/storage/archive目錄發(fā)現(xiàn)占用過高,該目錄用于存儲歸檔的日志文件和歷史數(shù)據(jù),解決方案是保留近30天的歸檔文件,這篇文章主要給大家介紹了關于Vcenter清理/storage/archive空間的處理方式,需要的朋友可以參考下2024-11-11
PostgreSQL數(shù)據(jù)庫中跨庫訪問解決方案
這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫中跨庫訪問解決方案,需要的朋友可以參考下2017-05-05
PostgreSQL ROW_NUMBER() OVER()的用法說明
這篇文章主要介紹了PostgreSQL ROW_NUMBER() OVER()的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Postgresql 存儲過程(plpgsql)兩層for循環(huán)的操作
這篇文章主要介紹了Postgresql 存儲過程(plpgsql)兩層for循環(huán)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL:string_agg?多列值聚合成一列的操作示例
PostgreSQL中的STRING_AGG()函數(shù)是一個聚合函數(shù),用于連接字符串列表并在字符串之間放置分隔符,這篇文章主要介紹了PostgreSQL:string_agg多列值聚合成一列,需要的朋友可以參考下2023-08-08

