濮阳杆衣贸易有限公司

主頁 > 知識庫 > pgsql批量修改sequences的start方式

pgsql批量修改sequences的start方式

熱門標簽:打電話智能電銷機器人授權 漯河外呼電話系統(tǒng) 合肥公司外呼系統(tǒng)運營商 辦公外呼電話系統(tǒng) 外呼調(diào)研系統(tǒng) 重慶自動外呼系統(tǒng)定制 海豐有多少商家沒有地圖標注 地圖標注和圖片名稱的區(qū)別 美容工作室地圖標注

修改為指定值

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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pgsql 如何刪除仍有活動鏈接的數(shù)據(jù)庫
  • pgsql的UUID生成函數(shù)實例
  • pgsql 如何手動觸發(fā)歸檔
  • PGSQL實現(xiàn)判斷一個空值字段,并將NULL值修改為其它值
  • pgsql 實現(xiàn)用戶自定義表結構信息獲取
  • pgsql鎖表后kill進程的操作
  • PGSQL 實現(xiàn)把字符串轉換成double類型(to_number())
  • pgsql添加自增序列、設置表某個字段自增操作
  • pgsql之pg_stat_replication的使用詳解

標簽:晉城 珠海 錦州 蚌埠 株洲 烏海 衡陽 來賓

巨人網(wǎng)絡通訊聲明:本文標題《pgsql批量修改sequences的start方式》,本文關鍵詞  pgsql,批量,修改,sequences,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pgsql批量修改sequences的start方式》相關的同類信息!
  • 本頁收集關于pgsql批量修改sequences的start方式的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    小金县| 云和县| 福海县| 崇明县| 金溪县| 甘肃省| 麟游县| 临桂县| 额尔古纳市| 龙井市| 陇南市| 五指山市| 胶南市| 内丘县| 乐陵市| 榕江县| 南溪县| 邢台县| 大同县| 新安县| 邵阳市| 江安县| 大冶市| 双桥区| 当雄县| 阜康市| 社旗县| 廉江市| 涡阳县| 张家川| 饶平县| 承德市| 渝中区| 朝阳区| 云梦县| 精河县| 德化县| 北海市| 祁连县| 科技| 曲沃县|