LINUX.ORG.RU

psycopg2 не может вернуть текущую схему через команду «SHOW search_path;»

 , , ,


0

1

1. Создаю собственную схему,
2. переключаюсь на нее,
3. и сразу хочу посмотреть какая схема используется.

Делаю это следующим кодом:

# Подключение к БД с заданными параметрами
connection = psycopg2.connect(**pgConnectionParameters)
cursor = connection.cursor()

# Переключение на заданную схему
dbSchema = 'our_schema'
cursor.execute("CREATE SCHEMA IF NOT EXISTS %s" % dbSchema)
cursor.execute("SET search_path TO %s" % dbSchema)

# Проверка текущей схемы
result = cursor.execute("SHOW search_path;")
print( result )

А результат None. Соответственно, даже fetchone/fetchall от результата вызвать не могу.

Вопрос: почему переменная result равна None?

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)

Вообще я мимо проходил, но судя по документации https://www.psycopg.org/docs/cursor.html он вообще всегда None. А fetch надо не от результата, а от самого «курсора» (что бы сие ни значило).

Так-то SHOW оно и есть SHOW. Я б SELECT current_schema(); использовал. Оно понятнее.

Toxo2 ★★★★
()
cursor.execute("CREATE SCHEMA IF NOT EXISTS %s" % dbSchema)
cursor.execute("SET search_path TO %s" % dbSchema)

Bobby Tables передаёт привет. Надеюсь, с пользовательским вводом ты так делать не будешь.

theNamelessOne ★★★★★
()

А, понял, надо было так:

cursor.execute("SHOW search_path;")
result = cursor.fetchone()
print( result )

('our_schema',)

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от theNamelessOne

Тут бы с базисом разобраться. SQL-иньекции меня пока не волнуют.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от theNamelessOne

А доки кто будет читать?

ТС считает, что ты выпендриваешься и на самом деле не понимаешь, что там написано. Там же по-английски, а чтобы понимать по-английски надо было родиться и всю жизнь до самой смерти прожить в англоговорящей стране. (с)

frob ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.