pg-promise - pg-promise 中的动态表名
问题描述
我想在 pg-promise 查询中动态选择表。以下代码不起作用,感谢任何帮助!
return db.any('SELECT * from $1', table_name)
我得到的错误信息是:
error: error: syntax error at or near
我不确定我是否应该使用帮助器,如以下链接所述: https ://vitaly-t.github.io/pg-promise/helpers.TableName.html
解决方案
直接的方法是通过SQL Names:
await db.any('SELECT * from $1:name', [table]);
// or
await db.any('SELECT * from ${table:name}', {table});
并使用架构:
await db.any('SELECT * from $1:name.$2:name', [schema, table]);
// or
await db.any('SELECT * from ${schema:name}.${table:name}', {schema, table});
更通用的方法是通过TableName:
const tn = new pgp.helpers.TableName({schema, table});
await db.any('SELECT * from $1', [tn]);
// or
await db.any('SELECT * from ${tn}', {tn});
推荐阅读
- reactjs - 如何使用 react-email-editor 加载 HTML 模板而不是 json?
- javascript - 如何格式化日期 YYYYMMDDmmhhssuuu
- javascript - 单击时显示反应日历
- django - 如何创建不影响嵌套序列化程序的新模型
- jenkins - 无法在詹金斯中使从节点联机
- c# - EF Core 错误:“不支持比较实体类型,因为它是无键实体”进行外部联接时
- java - 如何获取谷歌用户照片?安卓火力基地
- javascript - 如何将数组转换为特定格式的对象?
- javascript - 我怎样才能停止重新启动计数器
- kubernetes - 如何验证配置为 https 的 Liveness 探针的证书?