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)先給用戶(hù)分配一個(gè)序號(hào),接著系統(tǒng)的次Sequence立刻加上設(shè)置的步長(zhǎng)(increment 1),不論此序號(hào)用戶(hù)是否使用;
調(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 列表
我就廢話(huà)不多說(shuō)了,大家還是直接看代碼吧~
SELECT "c"."relname" FROM "pg_class" "c" WHERE "c"."relkind" = 'S';
結(jié)束~
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL?Log日志模塊原理及存在的問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于PostgreSQL?Log日志模塊原理及存在的問(wèn)題的相關(guān)資料,先日志在我們開(kāi)發(fā)過(guò)程中占據(jù)了一個(gè)非常重要的地位,是開(kāi)發(fā)和運(yùn)維管理之間的橋梁,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02CVE-2019-9193之PostgreSQL?任意命令執(zhí)行漏洞的問(wèn)題
這篇文章主要介紹了CVE-2019-9193:PostgreSQL?任意命令執(zhí)行漏洞,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08postgres array_to_string和array的用法講解
這篇文章主要介紹了postgres array_to_string和array的用法講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL數(shù)據(jù)庫(kù)備份還原全攻略
本文主要介紹邏輯備份和連續(xù)歸檔方式的備份及還原,文件系統(tǒng)級(jí)備份由于比較簡(jiǎn)單,這里不在贅述,以下操作使用的數(shù)據(jù)庫(kù)版本為PostgreSQL 12.5,不同的數(shù)據(jù)庫(kù)版本在進(jìn)行連續(xù)歸檔操作時(shí)會(huì)有細(xì)微差異,需要的朋友可以參考下2024-04-04使用PostgreSQL數(shù)據(jù)庫(kù)進(jìn)行中文全文搜索的實(shí)現(xiàn)方法
目前在PostgreSQL中常見(jiàn)的兩個(gè)中文分詞插件是zhparser和pg_jieba,這里我們使用zhparser,插件的編譯和安裝請(qǐng)查看官方文檔 ,安裝還是比較復(fù)雜的,建議找個(gè)現(xiàn)成docker鏡像,本文給大家介紹了在PostgreSQL數(shù)據(jù)庫(kù)使用中文全文搜索,需要的朋友可以參考下2023-09-09PostgreSQL 數(shù)據(jù)庫(kù)跨版本升級(jí)常用方案解析
這篇文章主要介紹了PostgreSQL 數(shù)據(jù)庫(kù)跨版本升級(jí)常用方案解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03postgresql通過(guò)索引優(yōu)化查詢(xún)速度操作
這篇文章主要介紹了postgresql通過(guò)索引優(yōu)化查詢(xún)速度操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12初識(shí)PostgreSQL存儲(chǔ)過(guò)程
這篇文章主要介紹了初識(shí)PostgreSQL存儲(chǔ)過(guò)程,本文講解了PostgreSQL中存儲(chǔ)過(guò)程的語(yǔ)法,并給出了一個(gè)操作實(shí)例,需要的朋友可以參考下2015-01-01基于PostgreSql 別名區(qū)分大小寫(xiě)的問(wèn)題
這篇文章主要介紹了基于PostgreSql 別名區(qū)分大小寫(xiě)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01