It seems that if I do a simple update it resolves my issue: INSERT INTO users(email, name) VALUES('u...@domain.tld', 'User') ON CONFLICT (email) DO UPDATE SET email = excluded.email -- users.email works too, not sure if makes a difference RETURNING user_id, (xmax::text::int > 0) as existed;
But if anyone has a better solution then I'd love to hear it. Thanks, Igal On Mon, Jan 1, 2018 at 11:07 PM, Igal Sapir <i...@lucee.org> wrote: > Hello, > > I want to use the "UPSERT" syntax for returning an ID if it exists, or > inserting a record and returning the new ID if it does not exist. > > INSERT INTO users(email, name) > VALUES('u...@domain.tld', 'User') > ON CONFLICT (email) DO NOTHING > RETURNING user_id, (xmax::text::int > 0) as existed; > > When an email address does not exist then it works fine and I get the new > user_id, but when it does exist, I get no results at all. > > How can I get the results in case of a CONFLICT? > > Thanks, > > > Igal >