PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Inserção correta do nome da tabela


Qualquer boa biblioteca deve fornecer escape adequado para nomes SQL, que incluem:
  • nome do esquema
  • nome da tabela
  • nome da coluna

Por exemplo, dentro do pg-promise você usaria assim:
db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])

ou seja, você obtém o nome da sua tabela com escape adequado anexando a variável com ~ , que por sua vez o torna seguro contra injeção de SQL.

A partir daqui, um simples escape para nomes de tabelas executados pela biblioteca:
return '"' + name.replace(/"/g, '""') + '"';

Veja também:Nomes SQL