Как получить таблицы в postgres с помощью psycopg2?

Может кто-нибудь объяснить, как я могу получить таблицы в текущей базе данных?

Я использую postgresql-8.4 psycopg2.

4 Solutions collect form web for “Как получить таблицы в postgres с помощью psycopg2?”

pg_class хранит всю необходимую информацию.

выполнение приведенного ниже запроса вернет пользовательские таблицы в виде кортежа в списке

conn = psycopg2.connect(conn_string) cursor = conn.cursor() cursor.execute("select relname from pg_class where relkind='r' and relname !~ '^(pg_|sql_)';") print cursor.fetchall() 

вывод:

 [('table1',), ('table2',), ('table3',)] 

Это сделало трюк для меня:

 cursor.execute("""SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'""") for table in cursor.fetchall(): print(table) 

Вопрос в том, как использовать psycopg2 для python для работы с postgres. Вот две удобные функции:

 def table_exists(con, table_str): exists = False try: cur = con.cursor() cur.execute("select exists(select relname from pg_class where relname='" + table_str + "')") exists = cur.fetchone()[0] print exists cur.close() except psycopg2.Error as e: print e return exists def get_table_col_names(con, table_str): col_names = [] try: cur = con.cursor() cur.execute("select * from " + table_str + " LIMIT 0") for desc in cur.description: col_names.append(desc[0]) cur.close() except psycopg2.Error as e: print e return col_names по def table_exists(con, table_str): exists = False try: cur = con.cursor() cur.execute("select exists(select relname from pg_class where relname='" + table_str + "')") exists = cur.fetchone()[0] print exists cur.close() except psycopg2.Error as e: print e return exists def get_table_col_names(con, table_str): col_names = [] try: cur = con.cursor() cur.execute("select * from " + table_str + " LIMIT 0") for desc in cur.description: col_names.append(desc[0]) cur.close() except psycopg2.Error as e: print e return col_names 

Если вы используете psql, вы можете ввести:

 \d 

http://www.postgresql.org/docs/9.1/static/app-psql.html

Если вы используете SQL, вы можете ввести:

 SELECT * FROM tables; 

http://www.postgresql.org/docs/current/interactive/information-schema.html

Если вам нужна статистика об их использовании, вы можете ввести:

 SELECT * FROM pg_stat_user_tables; 

http://www.postgresql.org/docs/current/interactive/monitoring-stats.html

  • Как использовать оператор Postgresql ANY в инструкции NOT IN
  • Проблема для вставки с использованием psycopg
  • Где можно скачать бинарные яйца с psycopg2 для Windows?
  • Как записать данные в Redshift, что является результатом данных, созданных в Python?
  • Django: использование одной тестовой базы данных в отдельном потоке
  • Как настроить django-hstore с помощью существующего приложения, управляемого югом?
  • Как запустить psycopg2 на El Capitan без нажатия на ошибку libssl
  • Как удалить кавычки из строки для SQL-запроса в Python?
  •  
    Interesting Posts for Van-Lav

    Как я могу использовать python itertools.groupby () для группировки списка строк по их первому символу?

    Ошибка при установке scikits.audiolab при использовании python setup.py egg_info

    Показывать графики matplotlib в Ubuntu (подсистема Windows для Linux)

    Python pandas условная замена строки на основе значений столбца

    Spark Context Textfile: загрузка нескольких файлов

    Нужды ли массивы numpy 1D следуют правилам строки / столбца?

    Python string.format () и Unicode

    Преобразовать список в namedtuple

    Объединение 2 .csv-файлов общим столбцом

    Невозможно отключить / включить CameraCapture с помощью Python / opencv: устройство или ресурс заняты

    Python: Рождественская елка

    Как автоматически удалить запись в соответствии с датой окончания в django

    Тестирование, если установлено, является подмножеством, учитывая число (кратность) каждого элемента в множестве

    Разделить строку на N равных частей?

    Проверьте, является ли файл именованным каналом (fifo) в python?

    Python - лучший язык программирования в мире.