首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pg-promise中的动态表名

pg-promise中的动态表名
EN

Stack Overflow用户
提问于 2020-01-09 01:39:29
回答 1查看 305关注 0票数 1

我想在pg-promise查询中动态选择表。以下代码不起作用,如有任何帮助,敬请指教!

代码语言:javascript
复制
return db.any('SELECT * from $1', table_name)

我得到的错误消息是:

代码语言:javascript
复制
error:  error: syntax error at or near 

我不确定是否应该使用帮助器,如以下链接所述:https://vitaly-t.github.io/pg-promise/helpers.TableName.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-09 02:54:29

直接方法是通过SQL Names

代码语言:javascript
复制
await db.any('SELECT * from $1:name', [table]);
// or
await db.any('SELECT * from ${table:name}', {table});

并使用该模式:

代码语言:javascript
复制
await db.any('SELECT * from $1:name.$2:name', [schema, table]);
// or
await db.any('SELECT * from ${schema:name}.${table:name}', {schema, table});

更通用的方法是通过TableName

代码语言:javascript
复制
const tn = new pgp.helpers.TableName({schema, table});

await db.any('SELECT * from $1', [tn]);
// or
await db.any('SELECT * from ${tn}', {tn});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59651123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档