Метод has_table
Метод has_table класса Inspector проверяет,
существует ли таблица с указанным именем в базе данных.
Первым параметром метод принимает имя таблицы.
Вторым необязательным параметром передаётся имя схемы.
Метод возвращает True, если таблица найдена,
и False в противном случае.
Синтаксис
Inspector.has_table(table_name, schema=None)
Пример
Давайте создадим движок для базы SQLite
в памяти, определим модель и проверим наличие
таблицы articles:
from sqlalchemy import create_engine, inspect
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
inspector = inspect(engine)
res = inspector.has_table('articles')
print(res)
Результат выполнения кода:
True
Пример
Давайте проверим наличие несуществующей таблицы
users:
from sqlalchemy import create_engine, inspect
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
inspector = inspect(engine)
res = inspector.has_table('users')
print(res)
Результат выполнения кода:
False
Пример
Давайте передадим имя схемы вторым параметром
для базы SQLite:
from sqlalchemy import create_engine, inspect
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
inspector = inspect(engine)
res = inspector.has_table('articles', schema='main')
print(res)
Результат выполнения кода:
True
Смотрите также
-
класс
Inspector,
который предоставляет доступ к метаданным базы -
метод
get_table_names,
который возвращает список имён таблиц -
метод
has_schema,
который проверяет существование схемы -
метод
get_columns,
который возвращает информацию о колонках таблицы