Hola a todos,
tengo una pregunta sobre como mejor hacer insert en la tabla y manipular id con primary key para mejor productividad. Necesito Insertar datos a la tabla y obtener ultima id.
1. Primera opcion llevar contador con SEQUENCE de Postgres :
INSERT INTO table (id, ...) VALUES ((SELECT nextval('seq_table')), ...) RETURNING (SELECT currval('seq_table')) AS id
Unica cosa que veo, que si no se inserta la fila, el contador se incrementa cada ves cuando se llama. Entonces habran id vacias sin usar en la tabla y numero de id se va a crecer mucho. Habran muchos registros. Esta id declarada como type int8 con longitud 64.
Hay alguna opcion de ocupar registros de sequence vacias. Tengo que preocupar por esto?
2. Segunda opcion es coger control de id como
INSERT INTO table (id, ...) VALUES ((SELECT MAX(id)+1 FROM table), ...)
RETURNING (SELECT MAX(id)+1 FROM table) AS id
Quero vuestras opiniones sobre como mejor hacer insert de datos para tener menor mantenimiento y mejor productividad con usuarios concurrentes.
Muchas gracias.