我需要知道任何给定的sqlalchemy表(sqlalchemy.schema.Table)是否有确切的0行。我有很多表格,每个表格中都有很多行,这必须在启动时运行所有表格,因此我正在寻找从运行时角度最有效的方法。因此,仅做计数不是我要找的东西。数据库是PostgreSQL,如果有变化,请告诉我。
我需要知道任何给定的sqlalchemy表(sqlalchemy.schema.Table)是否有确切的0行。我有很多表格,每个表格中都有很多行,这必须在启动时运行所有表格,因此我正在寻找从运行时角度最有效的方法。因此,仅做计数不是我要找的东西。数据库是PostgreSQL,如果有变化,请告诉我。
您可以使用-
db.query(Table_Name).first()
其中db
是一个sessionmaker()
对象。感谢@David S的帮助。
SQLAlchemy可以让你执行"原始"查询。在PostgreSQL中,您可以查询元数据的n_live_tup来获取记录计数:
SELECT
schemaname as schema_name,
relname as table_name,
n_live_tup as record_count
FROM pg_stat_user_tables WHERE n_live_tup > 0;
WHERE n_live_tup = 0
,如果您希望将其限制为仅特定表,则将table_name = <<your_table_name>>
添加到where子句中。SELECT True FROM <<your_table_name>> LIMIT 1;
如果表中有记录,则返回True;如果没有,则返回NULL。