Theo tài liệu chính thức:
Nếu bạn cần tạo động một truy vấn SQL ( ví dụ:chọn động một tên bảng ) bạn có thể sử dụng các tiện ích do mô-đun psycopg2.sql cung cấp.
sql mô-đun mới trong psycopg2 phiên bản 2.7. Nó có cú pháp sau:
from psycopg2 import sql
cur.execute(
sql.SQL("insert into {} values (%s, %s)")
.format(sql.Identifier('my_table')),
[10, 20])
Thêm trên:https://initd.org/psycopg/docs/sql.html#module-psycopg2.sql
[Cập nhật 2017-03-24:AsIs KHÔNG được sử dụng để đại diện cho tên bảng hoặc trường, sql mới mô-đun nên được sử dụng thay thế:https://stackoverflow.com/a/42980069/5285608]
Ngoài ra, theo tài liệu psycopg2:
Cảnh báo :Không bao giờ, không bao giờ , KHÔNG BAO GIỜ sử dụng nối chuỗi Python (
+) hoặc nội suy tham số chuỗi (%) để chuyển các biến vào một chuỗi truy vấn SQL. Thậm chí không phải súng.