No dia 13 de Janeiro de 2014 às 17:18, Paulo
<[email protected]>escreveu:

>
>
> Ola Pessoal,
>
>
>
> Precisei restaurar dados vindos de outro banco.
>
> As sequencias ficaram desatualizadas, preciso atualizar todas as tabelas
> automaticamente.
>
>
>
> Estou executando a sentença abaixo para sincronizar uma a uma, mais esta
> muito trabalhoso.
>
> SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence(cliente,
> 'codigo'), 3608, true);
>
>
>
> Alguém pode dar uma dica ¿
>
>
>
>
>
Tarde,

Veja se te ajuda... por favor execute antes em um ambiente que não seja
produção, é script que pesquei na net a bastante tempo


SELECT 'SELECT setval(''' || n.nspname || '.' ||
replace(replace(replace(replace(replace(replace(replace(replace(a.adsrc,
'(',''),')',''),'::',''),'textregclass',''),'nextval',''),'regclass',''),'''',''),
n.nspname||'.','')||''',(SELECT MAX('||ab.attname||') FROM '||
n.nspname|| '.'||c.relname||'),true);' as seqname
FROM pg_class  c
 JOIN pg_attrdef a ON c.oid=a.adrelid
 JOIN pg_namespace n ON c.relnamespace = n.oid AND n.nspname NOT LIKE 'pg_%'
 JOIN pg_index i ON i.indrelid=c.oid AND i.indisprimary='t'
 JOIN pg_attribute ab ON ab.attrelid=c.oid AND ab.attisdropped='f' AND
ab.atthasdef='t' AND i.indkey[0]=ab.attnum AND i.indkey[1] IS NULL
Where a.adsrc like 'nextval%';


Att Glauco
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a