借助pg-promise帮助程序,我能够生成用于多次插入或更新的查询,但是我想知道是否可以遵循作者的建议并将所有查询置于我的javascript代码之外(请参见{{3} }和此处:https://github.com/vitaly-t/pg-promise/wiki/SQL-Files)。
当我使用插入助手时,返回查询看起来像:
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
吗?
答案 0 :(得分:0)
您将静态和动态SQL混淆了。 SQL文件中有一些主要用于静态查询的SQL查询,也就是说,您仍然可以动态地进行大量注入,但是当大多数查询是动态的时,再也没有必要将其放入SQL文件中了。
helpers
名称空间仅用于动态查询。因此,您要问两件事,那就是将不需要连接的东西连接起来。