Estoy tratando de ajustar todas mis transacciones que deben ser todo o nada en BEGIN
y COMMIT
, pero no estoy seguro de cómo hacerlo en casos como el siguiente.Obteniendo una ID dentro de un bloque de transacción PostgreSQL
Tengo 3 tablas, una para imágenes, una para albums
, y una para las relaciones entre ellas, es decir, album_images
. La forma en que funciona el sistema es que un usuario puede crear un álbum y llenarlo con sus imágenes en una sola operación. El SQL es el siguiente:
BEGIN;
INSERT INTO albums [...]; -- Create a new album row
SELECT id AS album_id FROM albums WHERE [...]; -- Get that rows ID
-- Now use album_id in the next statement
INSERT INTO album_images (album_id, image_id) [...];
COMMIT;
Esto es probablemente un problema común, es que no estoy seguro de qué buscar y me parece que no puede encontrar una solución en la documentación tampoco.
Hm, ambos ejemplos producen 'error de sintaxis en o cerca de" ("' para mí. Incluso si alguno de estos funciona eventualmente, supongo que no hay forma de utilizar el valor de 'album_id' de mi' SELECT'? – Steffen
Oh, mi mal, funciona, gracias. – Steffen