PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 01/12/2010 11:35:50

mortimer.pw
Membre

Compter le nombre de lignes updatées

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

#2 01/12/2010 11:40:52

Marc Cousin
Membre

Re : Compter le nombre de lignes updatées

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

#3 01/12/2010 11:43:29

mortimer.pw
Membre

Re : Compter le nombre de lignes updatées

Bonjour Marc,
Merci pour la rapidité de la réponse.
Je suis dans un bloc Pl/PgSQL.

Hors ligne

#4 01/12/2010 11:53:24

Marc Cousin
Membre

Re : Compter le nombre de lignes updatées

Ah, c'est en plpgsql que c'est le moins élégant smile :


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

#5 01/12/2010 11:57:27

mortimer.pw
Membre

Re : Compter le nombre de lignes updatées

Super, cela fonctionne.
Merci beaucoup Marc.

Hors ligne

Pied de page des forums