sql >> Database teknologi >  >> RDS >> PostgreSQL

Sender tabelnavn som en parameter i psycopg2

Ifølge den officielle dokumentation:

Hvis du har brug for at generere en SQL-forespørgsel dynamisk (f.eks. dynamisk vælge et tabelnavn ) kan du bruge de faciliteter, der leveres af psycopg2.sql-modulet.

sql modul er nyt i psycopg2 version 2.7. Den har følgende syntaks:

from psycopg2 import sql

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

Mere om:http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql

[Opdatering 2017-03-24:AsIs bør IKKE bruges til at repræsentere tabel- eller feltnavne, den nye sql modul skal bruges i stedet:https://stackoverflow.com/a/42980069/5285608 ]

Også ifølge psycopg2 dokumentation:

Advarsel :Aldrig, aldrig , ALDRIG brug Python-strengsammenkædning (+ ) eller interpolation af strengparametre (% ) for at sende variabler til en SQL-forespørgselsstreng. Ikke engang i gevær.



  1. mysql -> indsæt i tbl (vælg fra en anden tabel) og nogle standardværdier

  2. docker postgres med indledende data er ikke persisted over commits

  3. APPLSYSPUB-skema

  4. Hvordan får man størrelsen på mysql-databasen?