У меня есть следующий UPSERT в PostgreSQL 9.5:
INSERT INTO chats ("user", "contact", "name")
VALUES ($1, $2, $3),
($2, $1, NULL)
ON CONFLICT("user", "contact") DO NOTHING RETURNING id;
Если конфликтов нет, он возвращает что-то вроде этого:
----------
| id |
----------
1 | 50 |
----------
2 | 51 |
----------
Но если есть конфликты, он не возвращает никаких строк:
----------
| id |
----------
Я хочу вернуть новые столбцы id
, если нет конфликтов или возвращать существующие столбцы id
конфликтующих столбцов.
Можно ли это сделать? Если это так, как?