Thanks for your reply Peter. If this is the case, what would be the reason for this functionality having 'changed' over the past week or so? Code running like this over many months has worked as expected.
On Wed, Dec 9, 2020 at 12:14 PM Peter Geoghegan <pg@bowt.ie> wrote:
On Tue, Dec 8, 2020 at 5:02 PM PG Bug reporting form <noreply@postgresql.org> wrote: > The SQL below recreates my issue. That is, the LAST insert statement DOES > NOT update the accountinfo_test table value for 'balance' to 200.0 ... it > remains at the previous value of 100.0.
I think that you need to UPDATE using the excluded.* pseudo table. For example, "SET my_col = excluded.my_col". As things stand you're using the target table itself. Technically the row is being updated, but with the wrong values (the existing values rather than your intended new successor values).