QueryFile中的多插入

问题描述 投票:0回答:1

我能够为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

node.js postgresql pg-promise
1个回答
0
投票

您混淆了静态和动态SQL。 SQL文件主要用于静态的SQL查询,即您仍然可以动态注入大量内容,但是当大多数查询是动态的时,将其放入SQL文件中就没有任何意义了。

helpers命名空间仅用于动态查询。所以你要问两件事,加入不需要加入的东西。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.