Вставка необработанного 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. Пожалуйста, смотрите руководство

Другие вопросы по тегам