PostgreSQL Sequence序列的使用詳解
PostgreSQL是一種關(guān)系型數(shù)據(jù)庫,和Oracle、MySQL一樣被廣泛使用。平時工作主要使用的是PostgreSQL,所以有必要對其相關(guān)知識做一下總結(jié)和掌握,先總結(jié)下序列。
一、 Sequence序列
Sequence是一種自動增加的數(shù)字序列,一般作為行或者表的唯一標識,用作代理主鍵。
1、Sequence的創(chuàng)建
例子:創(chuàng)建一個seq_commodity,最小值為1,最大值為9223372036854775807,從1開始,增量的步長為1,緩存為1的循環(huán)排序Sequence。
SQL語句如下:
CREATE SEQUENCE seq_commodity INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1 CYCLE; // 循環(huán),表示到最大值后從頭開始
2、查找Sequence中的值
SELECT nextval('seq_commodity');
這里nextval表示下一個值
3、修改 Sequence
用alter sequence來修改,除了start以外的所有sequence參數(shù)都可以被修改,
alter sequence 的例子 (SQL語句)
ALTER SEQUENCE seq_commodity INCREMENT 10 MAXVALUE 10000 CYCLE NOCACHE ;
當然如果想要修改start的值,可以先用 drop sequence刪掉,然后再重新創(chuàng)建。
4、刪除Drop Sequence
DROP SEQUENCE seq_commodity;
5、Sequence分配策略
調(diào)用select nextval(seq_ commodity);返回下一個序列號后,系統(tǒng)優(yōu)先給用戶分配一個序號,接著系統(tǒng)的次Sequence立刻加上設(shè)置的步長(increment 1),不論此序號用戶是否使用;
調(diào)用select currval(seq_ commodity);返回當前的序列號,該序列號只要沒有被使用,就不會變化,如果當前請求一直使用,那么不會再分配給其他的請求,因為該序列號已經(jīng)分配給當前請求。
補充:PostgreSQL 獲取 SEQUENCE 列表
我就廢話不多說了,大家還是直接看代碼吧~
SELECT "c"."relname" FROM "pg_class" "c" WHERE "c"."relkind" = 'S';
結(jié)束~
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
postgresql 刪除重復(fù)數(shù)據(jù)案例詳解
這篇文章主要介紹了postgresql 刪除重復(fù)數(shù)據(jù)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08
Mac系統(tǒng)重置PostgreSQL密碼的方法示例代碼
PostgreSQL 是一個免費的對象-關(guān)系數(shù)據(jù)庫服務(wù)器(ORDBMS),在靈活的BSD許可證下發(fā)行。這篇文章主要介紹了Mac系統(tǒng)重置PostgreSQL密碼的方法示例代碼,需要的朋友可以參考下2020-02-02
pgsql 實現(xiàn)用戶自定義表結(jié)構(gòu)信息獲取
這篇文章主要介紹了pgsql 實現(xiàn)用戶自定義表結(jié)構(gòu)信息獲取,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Postgresql 數(shù)據(jù)庫權(quán)限功能的使用總結(jié)
這篇文章主要介紹了Postgresql 數(shù)據(jù)庫權(quán)限功能的使用總結(jié),具有很好的參考價值,對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
PostgreSQL因大量并發(fā)插入導致的主鍵沖突的解決方案
在數(shù)據(jù)庫操作中,并發(fā)插入是一個常見的場景,然而,當大量并發(fā)插入操作同時進行時,可能會遇到主鍵沖突的問題,本文將深入探討 PostgreSQL 中解決因大量并發(fā)插入導致的主鍵沖突的方法,并通過具體的示例進行詳細說明,需要的朋友可以參考下2024-07-07
postgresql 實現(xiàn)多表關(guān)聯(lián)刪除
這篇文章主要介紹了postgresql 實現(xiàn)多表關(guān)聯(lián)刪除操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
postgresql 導入數(shù)據(jù)庫表并重設(shè)自增屬性的操作
這篇文章主要介紹了postgresql 導入數(shù)據(jù)庫表并重設(shè)自增屬性的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

