我能够为pg-promise助手生成多插入或更新的查询,但我想知道是否可以按照作者的建议并将所有查询放在我的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
?
您混淆了静态和动态SQL。 SQL文件主要用于静态的SQL查询,即您仍然可以动态注入大量内容,但是当大多数查询是动态的时,将其放入SQL文件中就没有任何意义了。
helpers
命名空间仅用于动态查询。所以你要问两件事,加入不需要加入的东西。