Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je travaille sur une 8.4.2 sous linux.
Est-il possible de récupérer le nombre de lignes mises à jour par une commande UPDATE ?
Merci pour les réponses.
Hors ligne
Sous psql:
marc=# CREATE TABLE test (a int);
CREATE TABLE
marc=# INSERT INTO test select generate_series(1,1000);
INSERT 0 1000
marc=# UPDATE test SET a=a+1000 where a> 600;
UPDATE 400
Donc oui, la commande update retourne le nombre d'enregistrements modifiés. Après, la façon d'y accéder dépend de ce que vous utilisez : libpq, ecpg, jdbc… ?
Marc.
Hors ligne
Bonjour Marc,
Merci pour la rapidité de la réponse.
Je suis dans un bloc Pl/PgSQL.
Hors ligne
Ah, c'est en plpgsql que c'est le moins élégant :
CREATE function test_rowcount () returns integer LANGUAGE plpgsql AS
$$
DECLARE
nb_update integer;
BEGIN
UPDATE test SET a=a+1000 where a> 600;
GET DIAGNOSTICS nb_update = ROW_COUNT;
RETURN nb_update;
END;
$$
;
SELECT test_rowcount();
test_rowcount
---------------
400
Marc.
Hors ligne
Super, cela fonctionne.
Merci beaucoup Marc.
Hors ligne
Pages : 1