32
我使用Python中的SQLAlchemy表中的行數,我想知道如何獲得在一列列的總數。我定義了變量:獲取使用SQLAlchemy的
engine = sqlalchemy.create_engine(url, ehco=False)
Session = sqlalchemy.orm.sessionmaker(bind=engine)
Session = session()
metadata = sqlalchemy.MetaData(engine)
Base = declarative_base(metadata=metadata)
# A class representing the shape_congress_districts_2012 table
class Congress(Base):
__tablename__ = 'shape_congress_districts_2012'
id = geoalchemy.Column(sqlalchemy.Integer, primary_key=True)
name = geoalchemy.Column(sqlalchemy.Unicode)
geom = geoalchemy.GeometryColumn(geoalchemy.Polygon(2))
geom_simple = geoalchemy.GeometryColumn(geoalchemy.Polygon(2))
area = geoalchemy.Column(sqlalchemy.Float)
state_id = geoalchemy.Column(sqlalchemy.Integer)
census_year = geoalchemy.Column(sqlalchemy.Date)
geoalchemy.GeometryDDL(Congress.__table__)
我想確定表中的總行數,而不必等待大量時間查詢數據庫。目前,我有一些代碼:
rows = session.query(Congress).all()
然後我可以從列表中訪問它們,但這需要我一次加載到內存中。
當我的那種類型,輸出我得到的是 'SELECT COUNT(shape_congress_districts_2012。號),COUNT_1 FROM shape_congress_districts_2012' 這是否意味着我搞砸在構建表的接口時,在代碼中的其他位置? – dbmikus
對不起,現在試試我的更新答案;) –
@dbmikus:查詢可能看起來很討厭,但是非常好。通常的做法是使用'COUNT(primary_key_column)'而不是'COUNT(*)',因爲在數據庫中智能不足以自動使用該鍵的索引時,查詢可能會更快。 – ThiefMaster