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});
我想在 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});