РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
645 of 711 menu

Метод 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,
    который возвращает список столбцов таблицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить