簡體   English   中英

如何從Python獲取PostgreSQL數據庫大小?

[英]How to get PostgreSQL database size from Python?

我正在使用psycopg2在Python3中獲取PostgreSQL數據庫大小。

dbname = 'my_pg_database'
q = 'select pg_total_relation_size(%s);'
conn.cursor.execute(q, (dbname, ))
row = conn.cursor.fetchone()
print(str(row[0]))

我也嘗試過使用相同的代碼,但切換第二行:

q = 'select pg_total_relation_size((%s));'

並更改第二和第三行:

dbname = 'my_pg_database'
q = 'select pg_total_relation_size({dbname});'.format(dbname=dbname)
conn.cursor.execute(q)
row = conn.cursor.fetchone()
print(str(row[0]))

我總是遇到相同的語法錯誤,在使用其他查詢之前,我曾遇到過很多這個問題,但是我設法使用格式或其他方式來解決此問題,但在這種情況下沒有。 有人知道為什么嗎?

編輯

我得到的錯誤是:

使用第一個代碼:

psycopg2.ProgrammingError:關系“ my_pg_database”不存在LINE 1:選擇pg_total_relation_size('my_pg_database');

順便說一句,這里有一種箭頭指向第二行的第一引號。

與第三個代碼:

psycopg2.ProgrammingError:列“ my_pg_database”不存在LINE 1:選擇pg_total_relation_size(my_pg_database);

這里有一種箭頭指向第二行的my_pg_database的m。

請注意,第一個錯誤是關於關系,第二個錯誤是關於列。

您使用了錯誤的函數,需要pg_database_size()來獲取數據庫的大小。 pg_total_relation_size()用於單個表及其索引。

有關更多詳細信息,請查閱手冊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM