Menurut dokumentasi resmi:
Jika Anda perlu membuat kueri SQL secara dinamis (misalnya, memilih nama tabel secara dinamis ) Anda dapat menggunakan fasilitas yang disediakan oleh modul psycopg2.sql.
sql
modul baru di psycopg2 versi 2.7. Ini memiliki sintaks berikut:
from psycopg2 import sql
cur.execute(
sql.SQL("insert into {} values (%s, %s)")
.format(sql.Identifier('my_table')),
[10, 20])
Lebih lanjut tentang:http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql
[Pembaruan 24-03-2017:AsIs
TIDAK boleh digunakan untuk mewakili nama tabel atau bidang, sql
. yang baru modul harus digunakan sebagai gantinya:https://stackoverflow.com/a/42980069/5285608 ]
Juga, menurut dokumentasi psycopg2:
Peringatan :Tidak pernah, tidak pernah , TIDAK PERNAH gunakan rangkaian string Python (
+
) atau interpolasi parameter string (%
) untuk meneruskan variabel ke string kueri SQL. Bahkan tidak dengan todongan senjata.