On Thu, 16 May 2019 at 20:28, Winanjaya Amijoyo <winanjaya.amijoyo@xxxxxxxxx> wrote: > column pid is bigserial that I expect to return on both insert and update > I don't want to use ON CONFLICT since it would increasing the sequence although it updating the data It's not very clear what you're trying to do here. So, by "pid returns empty", you mean that the UPDATE updates 0 rows, and you always expect it to update 1 row? The UPDATE is going to update 0 rows if either "s" is an empty relation, or there's no row in "area" with the "pid" that's in "s". "s" will be an empty relation if "test" does not have any row matching WHERE area = 'test5'. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services