CREATEORREPLACEFUNCTIONrebuilt_sequences()RETURNSintegeras$body$DECLAREsequencedefsRECORD;cinteger;BEGINFORsequencedefsINSELECTDISTINCTconstraint_column_usage.table_nameastablename,constraint_column_usage.table_nameastablename,constraint_column_usage.column_nameascolumnname,replace(replace(columns.column_default,'''::regclass)',''),'nextval(''','')assequencenamefrominformation_schema.constraint_column_usage,information_schema.columnswhereconstraint_column_usage.table_schema='public'ANDcolumns.table_schema='public'ANDcolumns.table_name=constraint_column_usage.table_nameANDconstraint_column_usage.column_nameIN('rowid','id')ANDconstraint_column_usage.column_name=columns.column_nameANDcolumns.column_defaultisnotnullLOOPEXECUTE'select max('||sequencedefs.columnname||') from '||sequencedefs.tablenameINTOc;IFcisnullTHENc=0;ENDIF;IFcisnotnullTHENc=c+1;ENDIF;EXECUTE'alter sequence '||sequencedefs.sequencename||' restart with '||c;ENDLOOP;RETURN1;END;$body$LANGUAGE'PLPGSQL';
CREATEORREPLACEFUNCTIONdol_util_rebuild_sequences()RETURNSintegeras$body$DECLAREsequencedefsRECORD;cinteger;BEGINFORsequencedefsINSELECTDISTINCTconstraint_column_usage.table_nameastablename,constraint_column_usage.table_nameastablename,constraint_column_usage.column_nameascolumnname,replace(replace(columns.column_default,'''::regclass)',''),'nextval(''','')assequencenamefrominformation_schema.constraint_column_usage,information_schema.columnswhereconstraint_column_usage.table_schema='public'ANDcolumns.table_schema='public'ANDcolumns.table_name=constraint_column_usage.table_nameANDconstraint_column_usage.column_nameIN('rowid','id')ANDconstraint_column_usage.column_name=columns.column_nameANDcolumns.column_defaultisnotnullLOOPEXECUTE'select max('||sequencedefs.columnname||') from '||sequencedefs.tablenameINTOc;IFcisnullTHENc=0;ENDIF;IFcisnotnullTHENc=c+1;ENDIF;EXECUTE'alter sequence '||sequencedefs.sequencename||' restart with '||c;ENDLOOP;RETURN1;END;$body$LANGUAGE'PLPGSQL';