имеют массив значений. Я хочу ЗАПИСАТЬ каждый из них в качестве записей, если он еще не существует. это можно сделать в одном заявлении в SQL?в Postgres, используйте массив значений для INSERT
традиционный Javascript подход:
[4,5,8]forEach(x => queryParams( insert into t1(c1) values($1) where not exists(select 1 from t1 where c1 = $1`, [x] );
, что было бы идеально что-то вроде
queryParams( `some fancy SQL here`, [ `{${join[4,5,8]}}` ] );
многих причин, в том числе ограничение стоимости сервера обходов и операций.
, который работает , но не очень элегантный, esp, если массив очень длинный. было бы неплохо иметь один оператор SQL, в котором массив является аргументом, вместо того, чтобы создавать инструкцию заново с каждым массивом. –
Вы также можете отключить массив, как обновленный ответ выше. –
@JasonW - это качало. Благодарю. –