Получить план таблиц БД, например, "описать имя_таблицы" из красного смещения и DB2 из python - PullRequest
0 голосов
/ 01 января 2019

Я хочу получить данные, используя мой код Python, как мы делаем с describe [tableName] statement.Я хочу сделать это на Redshift и DB2.

Я пытался сделать это, используя панды и курсоры, я пробовал следующие фрагменты команд:

  1. "set search_path to SCHEMA; select * from pg_table_def where schemaname = 'schema' and LOWER(tablename) = 'TableName';

  2. describe schema.tableName

  3. select column_name, data_type, character_manimum_length from information_schema.columns where table_schema = 'Schema' and table_name = 'TableName';

  4. \d or \d+

.

import psycopg2
import numpy as np
import pandas as pd   



con=psycopg2.connect(dbname= 'DBNAME', host="Host-Link",
    port= '5439', user= 'username', password= 'password')
    print(con)

cur = con.cursor()
query  = "set search_path to Schema; select * from pg_table_def where schemaname = 'Schema' and LOWER(tablename) = 'TableName';"
cur.execute(query)
temp = cur.fetchall()
print(temp)

data_frame = pd.read_sql("set search_path to Schema; select * from pg_table_def where schemaname = 'Schema' and LOWER(tablename) = 'TableName';", con)
print(data_frame)

con.close()

Я хочу вывод следующим образом:

COLUMN_NAME DATA_TYPE   PK  NULLABLE    DEFAULT AUTOINCREMENT   COMPUTED    REMARKS POSITION
col1        varchar(10) YES NO            NO          NO           1
col2        varchar(50) NO  NO            NO          NO           2
col3        smallint    NO  NO            NO          NO           3

1 Ответ

0 голосов
/ 03 января 2019

Большая часть этих данных включена в системное представление SVV_COLUMNS.Вы можете запросить эту таблицу, используя столбцы table_name и table_schema.

https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_COLUMNS.html

...