sql >> Databáze >  >> RDS >> PostgreSQL

Předání názvu tabulky jako parametru v psycopg2

Podle oficiální dokumentace:

Pokud potřebujete dynamicky generovat SQL dotaz (například dynamicky vybrat název tabulky ) můžete použít zařízení poskytované modulem psycopg2.sql.

sql modul je nový ve verzi psycopg2 2.7. Má následující syntaxi:

from psycopg2 import sql

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

Více na:http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql

[Aktualizace 2017-03-24:AsIs NEPOUŽÍVEJTE k reprezentaci názvů tabulek nebo polí, nový sql místo toho je třeba použít modul:https://stackoverflow.com/a/42980069/5285608 ]

Také podle dokumentace psycopg2:

Upozornění :Nikdy, nikdy , NIKDY použijte zřetězení řetězců Pythonu (+ ) nebo interpolace řetězcových parametrů (% ) k předání proměnných do řetězce dotazu SQL. Ani se zbraní v ruce.



  1. Jak pretify výstup pocházející z dotazu SELECT v příkazovém řádku?

  2. Povolit všechna vzdálená připojení, MySQL

  3. Pochopení toho, co sp_updatestats skutečně aktualizuje

  4. Jak změnit tabulku na serveru SQL Server pomocí příkazu Alter - SQL Server / Výukový program T-SQL, část 35