Sto cercando di inserire un inserto in una colonna json in un database postgresql utilizzando clojure.java.jdbc/insert!
. Non sono sicuro di quale formato di dati debba essere usato quando si inserisce JSON.Inserimento di dati in colonne json postgresql utilizzando clojure.java.jdbc
definizione Tabella:
CREATE TABLE errors (
id character varying(24) NOT NULL PRIMARY KEY,
body json NOT NULL
);
Cercando di utilizzare i dati letterali in un formato carta:
=> (insert! db :errors {:id "a" :body {:message "A error"}}
{:id "b" :body {:message "B error"}})
PSQLException No hstore extension installed. org.postgresql.jdbc2.AbstractJdbc2Statement.setMap (AbstractJdbc2Statement.java:1709)
alternativa come JSON stringa codificata:
=> (insert! db :errors {:id "a" :body "{\"message\":\"A error\"}"}
{:id "b" :body "{\"message\":\"B error\"}"})
PSQLException ERROR: column "body" is of type json but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
Position: 46 org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse (QueryExecutorImpl.java:2198)
Non sembra essere un modo ovvio per farlo. Di particolare importanza è che ho bisogno di essere in grado di inserire molti record in una singola query invece di uno a uno, una comodità che mi sta fornendo insert!
.
Che cosa è un modo semplice per inserire più record in una tabella postgres con una colonna json usando clojure.java.jdbc?
Il collegamento alla "spiegazione approfondita di questo processo" è morto! Hai una fonte alternativa? – rdgd
@rdgd Sostituito con un collegamento di archivio Internet. –