誰かが現在のデータベースでテーブルを取得する方法を説明していただけますか?psycopg2を使用してポストグルでテーブルを取得するにはどうすればよいですか?
私はpostgresql-8.4 psycopg2を使用しています。あなたはpsqlを使用している場合
誰かが現在のデータベースでテーブルを取得する方法を説明していただけますか?psycopg2を使用してポストグルでテーブルを取得するにはどうすればよいですか?
私はpostgresql-8.4 psycopg2を使用しています。あなたはpsqlを使用している場合
、次のように入力することができます:あなたはSQLを実行している場合
\d
http://www.postgresql.org/docs/9.1/static/app-psql.html
は、次のように入力することができます:あなたがしたい場合
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
質問はpostgresので物事を行うにはPythonのpsycopg2の使用についてです。ここには便利な機能が2つあります:
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
pg_classには必要な情報がすべて格納されています。
[('table1',), ('table2',), ('table3',)]
アレイフォームでどうやって取得できますか? – ihue
これやった私のためのトリック:
cursor.execute("""SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public'""")
for table in cursor.fetchall():
print(table)
ポイントとユニバーサルに感謝kalu rigth。 – peter
良い答え
出力リストにタプルとして、ユーザ定義のテーブルを返します。以下のクエリを実行
間違った質問のために。 –