PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

sqlalchemy tworzenie VIEW z ORM

biblioteka sqlalchemy-utils zawiera teraz funkcję tworzenia widoków i wiąże widok z metadanymi sqlalchemy, dzięki czemu możliwe jest utworzenie widoku za pomocą Base.metadata.create_all

przykład:

# 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL json_array_elements w klauzuli FROM - dlaczego to nie jest sprzężenie kartezjańskie?

  2. Python/postgres/psycopg2:uzyskiwanie identyfikatora właśnie wstawionego wiersza

  3. hibernacja 5 + ZonedDateTime + postgresql obejmują strefę czasową i przesunięcie

  4. sqlalchemy.exc.NoSuchModuleError:Nie można załadować wtyczki:sqlalchemy.dialects:postgres

  5. Opisać zestaw wyników w PostgreSQL?