Dynami c имена таблиц в pg-обещании - PullRequest
0 голосов
/ 08 января 2020

Я хотел бы динамически выбрать таблицу в запросе pg-обещания. Следующий код не работает, приветствуется любая помощь!

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

1 Ответ

1 голос
/ 08 января 2020

Прямой подход через SQL Имена :

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});

Более обобщенный c подход через TableName :

const tn = new pgp.helpers.TableName({schema, table});

await db.any('SELECT * from $1', [tn]);
// or
await db.any('SELECT * from ${tn}', {tn});
...