Hola,
Este pequeño Query nos ayudará cuando alguien realiza movimientos en la base de datos y queremos asegurarnos de que las secuencias queden actualizadas:
SELECT 'SELECT setval(''' || table_name || '_' || column_name || '_' || 'seq'', COALESCE((SELECT MAX(' || column_name || ')+1 FROM ' || table_name || '), 1), FALSE);'
FROM information_schema.key_column_usage
WHERE constraint_name LIKE '%pkey%'
ORDER BY table_name
En caso de que el nombre de la secuencia sea personalizado se debe ajustar en el setval.
Saludos y siempre piensen en ser mas productivos.
Excelente la sql muchas gracias. Incluí el esquema en el caso de que las tablas no estan en el public. SELECT ‘SELECT setval(»’ || table_schema||’.’|| table_name || ‘_’ || column_name || ‘_’ || ‘seq», COALESCE((SELECT MAX(‘ || column_name || ‘)+1 FROM ‘ || table_schema||’.’||table_name || ‘), 1), FALSE);’
FROM information_schema.key_column_usage
WHERE constraint_name LIKE ‘%pkey%’
ORDER BY table_name