Я работаю с базой данных postgres из clojure, используя java.jdbc.
[org.clojure/clojure "1.7.0"]
[org.clojure/java.jdbc "0.6.1"]
[org.postgresql/postgresql "9.4-1201-jdbc41"]
Я хочу выполнить операцию 'upsert' над базой данных, используя некоторый код, подобный следующему:
(if (-> updatesU count pos?) (sql/execute! spec ["insert into users(id, name) values (?, ?) on conflict(id) do update set name=EXCLUDED.name;"] updatesU {:multi? true} ))
(if (-> updatesTE count pos?) (sql/execute! spec ["insert into time_entries(id, spent_date, hours, userid, project, task) values (?, ?, ?, ?, ?, ?) on conflict(id) do update set spent_date=EXCLUDED.spent_date, hours=EXCLUDED.hours;"] updatesTE {:multi? true} )))
В документации, похоже, нет примеров, поэтому я вроде как потеряндля решения.
Я получаю эту ошибку:
Exception in thread "main" clojure.lang.ArityException: Wrong number of args (4) passed to: jdbc/execute!
Любая помощь будет отличной.