LINUX.ORG.RU

psycopg2 работа с БД удаление таблицы

 


0

1

Прошу помощи начал разбираться с БД, пытаюсь удалить таблицу из БД ‘‘‘def delete_bd (bddel): con = None bddel = bddel try: con = psycopg2.connect(user=‘postgres’, host=‘127.0.0.1’, password=‘1’) cursor = con.cursor() cursor.execute(«SELECT datname FROM pg_database WHERE " + «datistemplate = false;») fetch = cursor.fetchall() dblist = [fetch[i][0] for i in range(len(fetch))] print(‘wwww’, dblist) cursor.execute(«DROP TABLE %s;» % bddel») except psycopg2.DatabaseError as e: print("ErrorZZ ", e) con.close() bddel = ‘w5’ delete_bd(bddel)’’’

При этом fetchall() все видит: wwww ‘postgres’, ‘s1’, ‘w2’, ‘w4’, ‘w3’, ‘w5’, ‘w6’ но выдает ошибку: ErrorZZ table “w5” does not exist Вроде простая задача - не могу разобраться где ошибка. СПС



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

В логах postgres-а что?

DROP TABLE %s;

Не знаком практически с питоном(и форматирование твоё способствует), но скорее всего это не сработает в любом случае

Deleted
()

Начни с того чтобы нормально оформить код.

slovazap ★★★★★
()

Можешь использовать

DROP TABLE IF EXIST w5
Тогда исключение не возникнет, если таблицы нет

anymouse
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.