sql >> Database teknologi >  >> RDS >> Mysql

SQLAlchemy - Få en liste over tabeller

Alle tabellerne er samlet i tables attribut for SQLAlchemy MetaData-objektet. For at få en liste over navnene på disse tabeller:

>>> metadata.tables.keys()
['posts', 'comments', 'users']

Hvis du bruger den deklarative udvidelse, så administrerer du sandsynligvis ikke metadataene selv. Heldigvis er metadataene stadig til stede på basisklassen,

>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)

Hvis du forsøger at finde ud af, hvilke tabeller der findes i din database, selv blandt dem du ikke engang har fortalt SQLAlchemy om endnu, så kan du bruge tabelreflektion. SQLAlchemy vil derefter inspicere databasen og opdatere metadataene med alle de manglende tabeller.

>>> metadata.reflect(engine)

For Postgres, hvis du har flere skemaer, skal du gå gennem alle skemaerne i motoren:

from sqlalchemy import inspect
inspector = inspect(engine)
schemas = inspector.get_schema_names()

for schema in schemas:
    print("schema: %s" % schema)
    for table_name in inspector.get_table_names(schema=schema):
        for column in inspector.get_columns(table_name, schema=schema):
            print("Column: %s" % column)


  1. Opret en Postgres-database ved hjælp af python

  2. Bruger du resultatet af et udtryk (f.eks. funktionskald) i en parameterliste med lagret procedure?

  3. NULL i MySQL (Performance &Storage)

  4. SQLite - Indsæt data