sql >> Base de Datos >  >> RDS >> PostgreSQL

Obtenga el recuento de registros afectados por INSERTAR o ACTUALIZAR en PostgreSQL

Sé que esta pregunta es oooolllllld y mi solución podría decirse que es demasiado compleja, ¡pero ese es mi tipo de solución favorita!

De todos modos, tuve que hacer lo mismo y lo hice funcionar así:

-- Get count from INSERT
WITH rows AS (
    INSERT INTO distributors
        (did, dname)
    VALUES
        (DEFAULT, 'XYZ Widgets'),
        (DEFAULT, 'ABC Widgets')
    RETURNING 1
)
SELECT count(*) FROM rows;

-- Get count from UPDATE
WITH rows AS (
    UPDATE distributors
    SET dname = 'JKL Widgets'
    WHERE did <= 10
    RETURNING 1
)
SELECT count(*) FROM rows;

Uno de estos días tengo que ponerme a escribir un soneto de amor a la cláusula WITH de PostgreSQL...