sql >> Database >  >> RDS >> PostgreSQL

Tabelnaam doorgeven als parameter in psycopg2

Volgens de officiële documentatie:

Als u dynamisch een SQL-query moet genereren (bijvoorbeeld dynamisch een tabelnaam kiezen ) kunt u gebruikmaken van de faciliteiten van de psycopg2.sql-module.

De sql module is nieuw in psycopg2 versie 2.7. Het heeft de volgende syntaxis:

from psycopg2 import sql

cur.execute(
    sql.SQL("insert into {} values (%s, %s)")
        .format(sql.Identifier('my_table')),
    [10, 20])

Meer op:http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql

[Update 2017-03-24:AsIs mag NIET worden gebruikt om tabel- of veldnamen weer te geven, de nieuwe sql module moet in plaats daarvan worden gebruikt:https://stackoverflow.com/a/42980069/5285608 ]

Ook volgens psycopg2-documentatie:

Waarschuwing :Nooit, nooit , NOOIT gebruik Python-tekenreeksaaneenschakeling (+ ) of interpolatie van stringparameters (% ) om variabelen door te geven aan een SQL-querystring. Zelfs niet onder schot.



  1. 2 manieren om de karaktersets beschikbaar te krijgen in MariaDB

  2. hoe een slechte rij over te slaan in de platte bestandsbron van ssis

  3. Hoe automatische updates van statistieken de prestaties van zoekopdrachten kunnen beïnvloeden

  4. Sql Server string tot datum conversie