PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Obtenir le nombre d'enregistrements affectés par INSERT ou UPDATE dans PostgreSQL

Je sais que cette question est oooolllllld et que ma solution est sans doute trop complexe, mais c'est mon type de solution préféré !

Quoi qu'il en soit, j'ai dû faire la même chose et je l'ai fait fonctionner comme ceci :

-- 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;

Un de ces jours, je dois vraiment me débrouiller pour écrire un sonnet d'amour à la clause WITH de PostgreSQL...