sql >> Databasteknik >  >> RDS >> PostgreSQL

sqlalchemy skapar VIEW med ORM

biblioteket sqlalchemy-utils inkluderar nu funktionalitet för att skapa vyer, och det associerar vyn med sqlalchemys metadata så att det är möjligt att skapa vyn med Base.metadata.create_all

exempel:

# 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. Skapa en lagrad procedur i MySQL5 med ColdFusion 9:s <CFQUERY>-tagg

  2. Vilka fenomen försöker MySQL förhindra genom att låsa hela tabellen vid exekvering av Delete-satsen med villkoret på en icke-indexerad kolumn

  3. UTL_FILE sparas på lokal dator

  4. Ändra ett Enum-fält med Alembic