sql >> Database teknologi >  >> RDS >> PostgreSQL

sqlalchemy skaber VIEW med ORM

biblioteket sqlalchemy-utils inkluderer nu funktionalitet til at oprette visninger, og det forbinder visningen med sqlalchemys metadata, så det er muligt at oprette visningen ved hjælp af Base.metadata.create_all

eksempel:

# installation: pip install sqlalchemy-utils
from sqlalchemy_utils import create_view
from sqlalchemy import select, func

# engine Base & Table declaration elided for brevity

stmt = select([
    TableB.id.label('table_b_id'),
    TableB.coupon_code,
    TableB.number_of_rebought_items,
    TableA.id.label('table_a_action_id'),
    TableA.time,
    TableA.parameters
]).select_from(TableB.__table__.outerjoin(TableA, TableB.generate_action == TableA.id))

# attaches the view to the metadata using the select statement
view = create_view('my_view', stmt, Base.metadata)

# provides an ORM interface to the view
class MyView(Base):
    __table__ = view

# will create all tables & views defined with ``create_view``
Base.metadata.create_all()

# At this point running the following yields 0, as expected,
# indicating that the view has been constructed on the server 
engine.execute(select([func.count('*')], from_obj=MyView)).scalar() 



  1. MySQL IFNULL ANDET

  2. Fortabt i datoer og tidszoner

  3. PHP/MySQL-kodningsproblemer. � i stedet for visse tegn

  4. indsæt flere værdier i en enkelt attribut