Actualizar secuencias masivas en Postgresql

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.

 

One thought on “Actualizar secuencias masivas en Postgresql

  1. fernando velasco

    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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *