Obtenir le nombre de lignes dans la table à l'aide de SQLAlchemy
Je suis à l'aide de SQLAlchemy en Python, et je veux savoir comment obtenir le nombre total de lignes dans une colonne. J'ai variables définies:
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__)
Je veux déterminer le nombre total de lignes dans la table sans avoir à attendre tout un tas de temps d'interrogation de la base de données. Actuellement, j'ai un peu de code:
rows = session.query(Congress).all()
Alors je peux y accéder à partir de la liste, mais cela m'oblige à charge tout en mémoire à la fois.
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner
EDIT: une Autre façon liée à mon premier essai
SELECT count(shape_congress_districts_2012.id) AS count_1 FROM shape_congress_districts_2012
est-ce à dire que j'ai foiré quelque part d'autre dans mon code lors de la construction de l'interface de la table?COUNT(primary_key_column)
au lieu de simplementCOUNT(*)
depuis dans une base de données qui n'est pas assez intelligent pour utiliser cette clé de l'index automatiquement la requête peut être plus rapide de cette façon.