Actualizar sequences

Hola

Necesitaría detectar secuencias que no estén coherentes con los datos de la tabla y a posteriori actualizarlas.

Alguien tendrá alguna forma automática de hacerlo? son mas de 200.

Emilio

Podrías hacer un SP que lo haga.
Tendrías que obtener el campo de la secuencia, de ahí saltar a la tabla y obtener el máximo valor (max) y luego setear nuevamente la secuencia en el valor máximo de la tabla.
Podes usar el information_schema para obtener dicha informacion:
Ej:
select * from information_schema.sequences;
select * from information_schema.columns where column_default ilike ‘%nombre_secuencia%’;

Espero que te sea de ayuda, saludos!
Nico.

Hola Nico

DE DIEZ…

select ‘select ‘’’|| table_name || ‘’‘,’ ||
‘(select max(’||column_name||‘) from ‘|| table_schema || ‘.’ || table_name || ‘) as cant_tabla,’ ||
‘(select last_value from ’ ||table_schema ||’.’ || substr(column_default, 11, strpos(column_default, ‘’’:’ )-11) || ‘) as cant_secuencia’
’ from information_schema.columns where table_name = ‘’‘||
table_name ||’‘’ and (select max(‘||column_name||’) from ‘||
table_schema || ‘.’ || table_name || ‘) <> ’ ||
’ (select last_value from ’ ||table_schema ||’.’ ||
substr(column_default, 11, strpos(column_default, ‘’‘:’ )-11) || ') union ’
from information_schema.columns
where table_schema = ‘guarani3’
and column_default ilike ‘nextval%’

Emilio

Gracias por compartir! un abrazo.
Nico.