Re: Number of updated rows with LibPQ

Поиск
Список
Период
Сортировка
От Laurenz Albe
Тема Re: Number of updated rows with LibPQ
Дата
Msg-id 830241525f7fefeab2000203b6fcf0a6b815ee6e.camel@cybertec.at
обсуждение исходный текст
Ответ на Number of updated rows with LibPQ  (Dominique Devienne <ddevienne@gmail.com>)
Список pgsql-general
On Wed, 2022-10-05 at 16:38 +0200, Dominique Devienne wrote:
> Hi,
> 
> Is there a way to programmatically now how many rows an UPDATE did update?
> I've read about [PQcmdTuples][1], but surely I shouldn't have to parse
> that string, no?
> For selects, I have [PQnTuples][2], but what to do on INSERT, UPDATE, DELETE?
> Parse the result of PQcmdTuples myself??? If so, what's the 0 in the
> INSERT below?
> Is the output of PQcmdTuples "stable", i.e. "official"? Not locale dependent?
> 
> Thanks, --DD
> 
> [1]: https://www.postgresql.org/docs/14/libpq-exec.html#LIBPQ-PQCMDTUPLES
> [2]: https://www.postgresql.org/docs/14/libpq-exec.html#LIBPQ-PQNTUPLES
> 
> postgres=# create table foo (v int);
> CREATE TABLE
> postgres=# insert into foo values (1), (2), (3);
> INSERT 0 3
> postgres=# update foo set v = 2*v where v = 2;
> UPDATE 1
> postgres=# delete from foo where v = 3;
> DELETE 1
> postgres=# select v from foo where v > 1;
> ...
> (1 row)
> postgres=# delete from foo;
> DELETE 2
> postgres=# drop table foo;
> DROP TABLE
> postgres=#

Yes, you have to use PQcmdTuples(), and you have to convert the string to an integer.

But don't worry: the result will *not* be "INSERT 0 5", it will be just "5", so
you won't have to parse anything.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com



В списке pgsql-general по дате отправления:

Предыдущее
От: Dominique Devienne
Дата:
Сообщение: Number of updated rows with LibPQ
Следующее
От: Kaushal Shriyan
Дата:
Сообщение: Replication between Master PostgreSQL database version 9.6.1 and Standby/Slave PostgreSQL database version 10.17.