#python #postgresql #psycopg2
Вопрос:
Я пытаюсь прочитать таблицы из базы данных postgres, но имя таблицы указано в номере, поэтому я продолжаю получать синтаксическую ошибку. Есть какие-нибудь способы решить эту проблему?
import psycopg2
conn=psycopg2.connect(host='host', dbname='database', user='postgres', password='postgres', port='5432')
cur=conn.cursor()
cur.execute("select* from database.public."123456";")
rows=cur.fetchall()
print(rows)
syntaxError: invalid syntax
Ответ №1:
from psycopg2 import sql
query = sql.SQL("SELECT * FROM {table}").format(table=sql.Identifier('123456'))
cursor.execute(query)
использование целых чисел в качестве имени не очень хорошая идея , см. раздел Форматирование sql в psycopg. ваш запрос не является правильной строкой, поэтому вы получаете синтаксическую ошибку.