pg-promise 中的动态 table 名称

Dynamic table names in pg-promise

我想在 pg-promise 查询中动态地 select table。以下代码无效,如有任何帮助,我们将不胜感激!

return db.any('SELECT * from ', table_name)

我收到的错误信息是:

error:  error: syntax error at or near 

我不确定我是否应该使用助手,如此 link 中所述: https://vitaly-t.github.io/pg-promise/helpers.TableName.html

直接方法是通过SQL Names:

await db.any('SELECT * from :name', [table]);
// or
await db.any('SELECT * from ${table:name}', {table});

以及架构:

await db.any('SELECT * from :name.: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 ', [tn]);
// or
await db.any('SELECT * from ${tn}', {tn});