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:http://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.