Я могу сгенерировать запрос для нескольких вставок или обновить благодаря помощникам pg-обещания, но мне было интересно, смогу ли я последовать совету автора и поставить все запросы вне моего кода JavaScript (см. Здесь https://github.com/vitaly-t/pg-promise/wiki/SQL-Files и здесь: https://github.com/vitaly-t/pg-promise-demo).
Когда я использую помощники вставки, возвращаемый запрос выглядит так:
INSERT INTO "education"("candidate_id","title","content","degree","school_name","start_date","still_in","end_date","picture_url") VALUES('6','My degree','Business bachelor','Bachelor +','USC','2018-05-15T02:00:00.000+02:00'::date,false,null::date,null),('6','Another degree','Engineering','Master degree','City University','2018-05-15T02:00:00.000+02:00'::date,false,null::date,null)
Идея в том, что я не знаю, сколько вставок я хочу сделать одновременно, поэтому он должен быть динамичным.
Следующий код не работает, так как я передаю массив объекта вместо объекта:
db.none(`INSERT INTO "education"("candidate_id","title","content","degree","school_name","start_date","still_in","end_date","picture_url")
VALUES($<candidate_id>, $<title>, $<content>, $<degree>, $<school_name>, $<start_date>, $<still_in>, $<end_date>, $<picture_url>)`, data)
Этот код распространяет объект, но все еще не является правильным, чтобы сделать правильный запрос:
db.none(`INSERT INTO "education"("candidate_id","title","content","degree","school_name","start_date","still_in","end_date","picture_url")
VALUES($1:list)`,
[data])
Есть идеи? Возможно ли это по крайней мере, или в случае, когда я не знаю, сколько записей я хочу вставить заранее, мне нужно каждый раз звонить pgp.helpers
?