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

