я хочу вставить их в БД одной query, используя параметры. Что-то типа
INSERT
INTO params (type, name, count)
VALUES ($1::text, $2::text, $3::int)
ON CONFLICT ON CONSTRAINT param_uniqueness
DO
UPDATE SET count = params.count + EXCLUDED.count
Как видно, в query можно передать только три переменных, например ("param_a_type", "param_a_name", 0). А как бы сделать так, чтобы можно было передать (("param_a_type", "param_a_name", 0), ("param_b_type", "param_b_name", 1))? Каким-то образом флаттенить?
Что-то мне подсказывает, что транзакция из нескольких таких инсертов — единственный выход 🤔
INSERT INTO params (type, name, count) VALUES ($1, $2, $3), ($4, $5, $6) … не катит?
А, блин, да, хотелось бы переиспользовать query (prepared statement)
интересно, зачем? их используют чтобы экономить на планировании, какая тут экономия-то?
Обсуждают сегодня