PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Подаване на име на таблица като параметър в psycopg2

Според официалната документация:

Ако трябва да генерирате динамично SQL заявка (например динамичен избор на име на таблица ) можете да използвате съоръженията, предоставени от модула psycopg2.sql.

sql модулът е нов в psycopg2 версия 2.7. Той има следния синтаксис:

from psycopg2 import sql

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

Повече на:http://initd.org/psycopg/docs/sql.html#module-psycopg2.sql

[Актуализация 2017-03-24:AsIs НЕ трябва да се използва за представяне на имена на таблици или полета, новият sql вместо това трябва да се използва модул:https://stackoverflow.com/a/42980069/5285608 ]

Също така, според документацията на psycopg2:

Предупреждение :Никога,никога , НИКОГА използвайте конкатенация на низове на Python (+ ) или интерполация на параметри на низ (% ) за предаване на променливи към низ на SQL заявка. Дори не под прицел.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конкатенира низове от низ поле в PostgreSQL заявка „групиране по“?

  2. PostgreSQL:Показване на таблици в PostgreSQL

  3. Копиране на Postgres от променлива с CSV данни

  4. PostgreSQL 11:Рецензенти на пачове за разделяне на пачове

  5. След възстановяване на моята база данни серийният номер е премахнат от колоната в Postgresql