sql >> Base de Datos >  >> RDS >> PostgreSQL

Inserción correcta del nombre de la tabla

Cualquier buena biblioteca debe proporcionar un escape adecuado para los nombres de SQL, que incluyen:

  • nombre del esquema
  • nombre de la tabla
  • nombre de la columna

Por ejemplo, dentro de pg-promise lo usaría así:

db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])

es decir, obtiene el nombre de su tabla correctamente escapado agregando la variable con ~ , que a su vez lo protege de la inyección SQL.

A partir de aquí, un simple escape para nombres de tablas ejecutado por la biblioteca:

return '"' + name.replace(/"/g, '""') + '"';

Ver también:Nombres SQL