PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Melewati nama tabel sebagai parameter di psycopg2

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak ada hasil yang dikembalikan oleh kesalahan Kueri di PostgreSQL

  2. Memasukkan nilai DEFAULT ke dalam kolom ketika parameternya NULL

  3. Jalankan kueri PostgreSQL dari baris perintah

  4. file postgres db - file mana yang mewakili tabel/indeks tertentu?

  5. UPPER() – Konversikan ke Huruf Besar di PostgreSQL