Вставка необработанного SQL с Korma
Я хочу выполнить следующий сырой SQL с Korma:
k/exec-raw
["INSERT INTO events ?, VALUES ? ON CONFLICT (id) DO UPDATE SET title = EXCLUDED.title;" [keys values]]
с параметрами, равными:
keys (str "(" (keys->str res) ")")
values (str "(" (serialize (merge res) ", ") ")" )
Оба оценивают, чтобы исправить строки и работают в repl.
Но во время выполнения у меня есть следующая ошибка в консоли PSQL:
ERROR: syntax error at or near "$1" at character 20
STATEMENT: INSERT INTO events $1, VALUES $2 ON CONFLICT (id) DO UPDATE SET title = EXCLUDED.title
Не могу понять, в чем проблема. Кто-нибудь когда-нибудь делал вставки с Кормой?
PostgreSQL 9.5 + Korma 0.4.2
1 ответ
Только значения могут быть использованы в качестве параметров в подготовленном утверждении. Итак, чтобы это работало:
INSERT INTO events (column) VALUES (?)
Если вы хотите работать так, как вы, вам нужно подготовить строку sql самостоятельно и убедиться, что у вас нет инъекции sql. Пожалуйста, смотрите руководство