Re: Multi insert statement and getUpdateCount().
От | Jeremy Whiting |
---|---|
Тема | Re: Multi insert statement and getUpdateCount(). |
Дата | |
Msg-id | 55153E4D.2020201@redhat.com обсуждение исходный текст |
Ответ на | Re: Multi insert statement and getUpdateCount(). (dmp <danap@ttc-cmc.net>) |
Список | pgsql-jdbc |
On 26/03/15 19:41, dmp wrote: > Jeremy Whiting wrote: >> Hi, >> I have been testing the current version of pgjdbc master branch. I >> added a >> test case to a branch in my repo [1] to check the behaviour when a >> multi insert >> statement adds two rows to a table. I found the return value when >> calling >> .getUpdateCount() does not equal the number of rows affected. >> >> My question is what should the return value for .getUpdateCount() >> represent. >> Is it the number of statements executed or rows put in the database ? >> >> Regards, >> Jeremy >> >> [1] >> https://github.com/whitingjr/pgjdbc/tree/updatecount-mismatches-updatecount >> > > My quick test shows it seems to be represent the the rows effected. > That is > using a single statement with multiple insert values. (3) > > INSERT INTO "public"."key_table4" ("avatar_id", "user_id", "bing_id") > VALUES > (3, 21, 20), > (5, 17, 31), > (8, 5, 7); > > If you are using single insert statements I would assume it will > always return > (1). > > According to the Java API > > Retrieves the current result as an update count; if the result is a > ResultSet object or there are no more results, -1 is returned. This > method should be called only once per result. > > Seems correct, rows effected. Using postgresql-9.4-1200.jdbc4.jar, not > current > repository though. > > danap. > > Thanks for your reply. It prompted me to do some more testing and stepping through the code. I found the return value for your example will be -1 == .getUpdateCount() whereas the int array return value for the method call .executeBatch() int[] == {3} Thanks again for helping me to understand this better. Jeremy
В списке pgsql-jdbc по дате отправления: