zoukankan      html  css  js  c++  java
  • 【PostgreSql】more than one owned sequence found

    do --check seq not in sync
    $$
    declare
     _r record;
     _i bigint;
     _m bigint;
    begin
      for _r in (
        Select
          DISTINCT(constraint_column_usage.table_name) as tablename,
          constraint_column_usage.column_name as idname,
          replace(replace(columns.column_default,'''::regclass)',''),'nextval(''','') as seqname,
                columns.table_schema as schamename
          from information_schema.constraint_column_usage, information_schema.columns
          where constraint_column_usage.table_schema ='public' AND
          columns.table_schema = 'public' AND columns.table_name=constraint_column_usage.table_name
          AND constraint_column_usage.column_name = columns.column_name
          AND columns.column_default is not null
       ) loop
        execute format('select last_value from %I.%s',_r.schamename,_r.seqname) into _i;
        execute format('select max(%I) from %I.%I',_r.idname,_r.schamename,_r.tablename) into _m;
        if coalesce(_m,0) > _i then
          raise info '%',concat('changed: ',_r.tablename||'_Id_seq',' from:',_i,' to:',_m+1);
          execute format('alter sequence %I.%s restart with %s',_r.schamename,_r.seqname,_m+1);
        end if;
      end loop;
    
    end;
    $$
    ;
  • 相关阅读:
    JavaWeb笔记:连接数据库
    Android笔记:ViewGroup
    Java笔记:异常
    Java笔记:文件夹操作
    Java笔记:有啥记啥
    Java笔记:Number
    Java笔记:修饰符
    数据仓库之启用cdc
    多线程之线程池任务管理通用模板
    关于RESTful 的使用(实战)
  • 原文地址:https://www.cnblogs.com/xuxml/p/15666269.html
Copyright © 2011-2022 走看看