pgsql批量修改sequences的start方式
修改為指定值
DO $$DECLARE r record; BEGIN FOR r IN SELECT sequence_name FROM information_schema."sequences" LOOP EXECUTE 'ALTER SEQUENCE '|| r.sequence_name ||' restart WITH 10000'; END LOOP; END$$;
根據(jù)表的id修改
DO $$ DECLARE r record; start_value integer := 0; BEGIN FOR r IN SELECT tablename||'_id_seq' AS sequence_name, tablename FROM pg_tables WHERE schemaname = 'public' LOOP EXECUTE 'SELECT max(id)+1 AS max_value FROM ' || r.tablename INTO start_value; IF start_value IS NULL THEN start_value:= 1; END IF; RAISE NOTICE 'start_value % %', r.tablename,start_value; EXECUTE 'ALTER SEQUENCE '|| r.sequence_name ||' restart WITH ' || start_value; END LOOP; END$$;
補充:postgresql 13 數(shù)據(jù)庫 sequence 的 maxvalue 最大值是多少?
os: centos 7.8.2003
db: postgresql 13.0
版本
# cat /etc/centos-release CentOS Linux release 7.8.2003 (Core) # su - postgres Last login: Thu Oct 15 09:59:33 CST 2020 on pts/1 ppostgres@nodepg13-> psql -c "select version();" version --------------------------------------------------------------------------------------------------------- PostgreSQL 13.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit (1 row)
create sequence
$ psql postgres=# create sequence seq_1; CREATE SEQUENCE postgres=# select c.relname,c.relkind,s.* from pg_class c,pg_sequence s where c.oid=s.seqrelid; relname | relkind | seqrelid | seqtypid | seqstart | seqincrement | seqmax | seqmin | seqcache | seqcycle ---------+---------+----------+----------+----------+--------------+---------------------+--------+----------+---------- seq_1 | S | 40968 | 20 | 1 | 1 | 9223372036854775807 | 1 | 1 | f (1 row)
seqmax = 9223372036854775807 maxvalue NO MAXVALUE The optional clause MAXVALUE maxvalue determines the maximum value for the sequence. If this clause is not supplied or NO MAXVALUE is specified, then default values will be used. The default for an ascending sequence is the maximum value of the data type. The default for a descending sequence is -1.
那就需要查看下 bigint 的值
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
postgresql 實現(xiàn)獲取所有表名,字段名,字段類型,注釋
這篇文章主要介紹了postgresql 實現(xiàn)獲取所有表名,字段名,字段類型,注釋操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01在Ubuntu中安裝Postgresql數(shù)據(jù)庫的步驟詳解
PostgreSQL 是一款強大的,開源的,對象關(guān)系型數(shù)據(jù)庫系統(tǒng)。它支持所有的主流操作系統(tǒng),包括 Linux、Unix(AIX、BSD、HP-UX,SGI IRIX、Mac OS、Solaris、Tru64) 以及 Windows 操作系統(tǒng)。本文給大家介紹了在Ubuntu中安裝Postgresql數(shù)據(jù)庫的步驟,需要的朋友可以參考下。2017-09-09PostgreSQL數(shù)據(jù)庫遷移部署實戰(zhàn)教程
這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫遷移部署實戰(zhàn)教程,由于項目本身就是基于PostgreSQL數(shù)據(jù)庫構(gòu)建的,因此數(shù)據(jù)庫遷移將變得十分便捷,接下來,我將簡要介紹我們的遷移步驟,需要的朋友可以參考下2023-07-07Postgresql之時間戳long,TimeStamp,Date,String互轉(zhuǎn)方式
這篇文章主要介紹了Postgresql中的時間戳long,TimeStamp,Date,String互轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03解析PostgreSQL中Oid和Relfilenode的映射問題
這篇文章主要介紹了PostgreSQL中Oid和Relfilenode的映射問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01PostgreSQL?pg_filenode.map文件介紹
這篇文章主要介紹了PostgreSQL誤刪pg_filenode.map怎么辦,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-09-09使用docker compose啟動postgresql的示例代碼
要在啟動 PostgreSQL 容器時執(zhí)行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目錄,這個目錄下的 SQL 文件會在容器啟動時被自動執(zhí)行,下面是如何修改 Docker Compose 配置文件,以便在啟動時執(zhí)行初始化 SQL 腳本,需要的朋友可以參考下2024-10-10