Здравствуйте. Вопрос к знатокам, как в плане производительности и правильности. Есть например есть таблица
ROLLBACK;
BEGIN;
CREATE TEMP TABLE test( id integer, number varchar(12), other varchar(10)) ON COMMIT DROP;
CREATE UNIQUE INDEX ON test( number );
insert into test values ( 1, '1', '');
select * from test;
commit;
Например идет вставка по уникальному номеру (поле number)
1) Сначала ищем есть ли записи
select * from test where number = '1';
и если запрос ничего не вернул вставляем запись
insert into test values ( '1', '');
если вернул, тогда обновляем записи
update test set other = 'ttt' where number = '1';
2) Или лучше все сделать одним запросом
insert into test values ( '1', 'tttt') ON CONFLICT (number) DO update SET other = EXCLUDED.other;
Мне больше нравиться конечно второй вариант: меньше кода + меньше обращений к таблицам + проще обслуживать, но насколько его можно использовать в больших проектах? Спасибо