Метод get_view_definition
Метод get_view_definition класса Inspector
возвращает исходный SQL-код, которым было создано
представление в базе данных. Первым параметром
метод принимает имя представления. Вторым
необязательным параметром передается имя схемы.
Метод возвращает строку с определением представления
или None, если определение недоступно.
Синтаксис
inspector.get_view_definition(view_name, [schema])
Пример
Давайте создадим представление в базе SQLite
и получим его определение через инспектор:
from sqlalchemy import create_engine, text, inspect
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT, text TEXT, status TEXT, num INTEGER)'))
conn.execute(text('CREATE VIEW article_titles AS SELECT id, title FROM articles'))
conn.commit()
inspector = inspect(engine)
res = inspector.get_view_definition('article_titles')
print(res)
Результат выполнения кода:
"CREATE VIEW article_titles AS SELECT id, title FROM articles"
Пример
Давайте получим определение представления, которое отсутствует в базе данных:
from sqlalchemy import create_engine, text, inspect
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT, text TEXT, status TEXT, num INTEGER)'))
conn.commit()
inspector = inspect(engine)
res = inspector.get_view_definition('article_titles')
print(res)
Результат выполнения кода:
None
Пример
Давайте получим определения всех представлений базы данных:
from sqlalchemy import create_engine, text, inspect
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT, text TEXT, status TEXT, num INTEGER)'))
conn.execute(text('CREATE VIEW article_titles AS SELECT id, title FROM articles'))
conn.execute(text('CREATE VIEW article_nums AS SELECT id, num FROM articles'))
conn.commit()
inspector = inspect(engine)
for view_name in inspector.get_view_names():
print(view_name, '->', inspector.get_view_definition(view_name))
Результат выполнения кода:
article_titles -> CREATE VIEW article_titles AS SELECT id, title FROM articles
article_nums -> CREATE VIEW article_nums AS SELECT id, num FROM articles
Смотрите также
-
класс
Inspector,
который инспектирует структуру базы данных -
метод
get_view_names,
который возвращает список имен представлений -
метод
get_table_names,
который возвращает список имен таблиц -
метод
get_columns,
который возвращает список столбцов таблицы