Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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 :
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
Pages : 1