繁体   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