首页数据库pgsql批量修改sequences的start方式

pgsql批量修改sequences的start方式

时间2024-02-29 14:35:03发布访客分类数据库浏览242
导读:收集整理的这篇文章主要介绍了pgsql批量修改sequences的start方式,觉得挺不错的,现在分享给大家,也给大家做个参考。 修改为指定值DO $$DECLARE r record...
收集整理的这篇文章主要介绍了pgsql批量修改sequences的start方式,觉得挺不错的,现在分享给大家,也给大家做个参考。

修改为指定值

DO $$DECLARE r record;
    BEginFOR r IN SELECT sequence_name From information_schema."sequences"LOOP EXECUTE 'ALTER SEQUENCE '|| r.sequence_name ||' restart WITH 10000';
    END LOOp;
    END$$;
    

根据表的id修改

DO $$DECLARE  r record;
     start_value integer := 0;
    BEGINFOR 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 数据库 sequence 的 maxvalue 最大值是多少?

os: centos 7.8.2003

db: postgresql 13.0

版本

# cat /etc/centos-releaseCentOS Linux release 7.8.2003 (Core)# su - postgresLast LOGin: Thu Oct 15 09:59:33 CST 2020 on pts/1ppostgres@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

$ psqlpostgres=# create sequence seq_1;
    CREATE SEQUENCEpostgres=# 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 = 9223372036854775807maxvalueNO MAXVALUEThe 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 的值

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • pgsql 如何删除仍有活动链接的数据库
  • pgsql的UUID生成函数实例
  • pgsql 如何手动触发归档
  • PGSQL实现判断一个空值字段,并将NULL值修改为其它值
  • pgsql 实现用户自定义表结构信息获取
  • pgsql锁表后kill进程的操作
  • PGSQL 实现把字符串转换成double类型(to_number())
  • pgsql添加自增序列、设置表某个字段自增操作
  • pgsql之pg_stat_replication的使用详解

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: pgsql批量修改sequences的start方式
本文地址: https://pptw.com/jishu/632992.html
postgresql 实现更新序列的起始值 idea创建spring项目连接超时怎么解决

游客 回复需填写必要信息