Метод get_table_names
Метод get_table_names класса Inspector
возвращает список имен всех таблиц,
присутствующих в базе данных. Первым
необязательным параметром метод принимает
имя схемы schema, для которой нужно
получить список таблиц. Если параметр
не указан, используется схема по умолчанию.
Метод возвращает список строк. Если в базе данных нет таблиц, метод вернет пустой список.
Синтаксис
inspector.get_table_names(schema=None)
Пример
Давайте создадим движок и инспектор, а затем получим список таблиц в базе данных:
from sqlalchemy import create_engine, inspect
engine = create_engine('sqlite:///:memory:')
inspector = inspect(engine)
res = inspector.get_table_names()
print(res)
Результат выполнения кода:
[]
Пример
Давайте создадим таблицу и проверим, появится ли она в списке таблиц:
from sqlalchemy import create_engine, inspect, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text(
'CREATE TABLE articles ('
'id INTEGER PRIMARY KEY, '
'title VARCHAR(100)'
')'
))
conn.commit()
inspector = inspect(engine)
res = inspector.get_table_names()
print(res)
Результат выполнения кода:
['articles']
Пример
Давайте создадим несколько таблиц и получим их полный список:
from sqlalchemy import create_engine, inspect, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text(
'CREATE TABLE articles ('
'id INTEGER PRIMARY KEY, '
'title VARCHAR(100)'
')'
))
conn.execute(text(
'CREATE TABLE users ('
'id INTEGER PRIMARY KEY, '
'name VARCHAR(100)'
')'
))
conn.execute(text(
'CREATE TABLE comments ('
'id INTEGER PRIMARY KEY, '
'text VARCHAR(255)'
')'
))
conn.commit()
inspector = inspect(engine)
res = inspector.get_table_names()
print(res)
Результат выполнения кода:
['articles', 'comments', 'users']
Пример
Давайте используем метод get_table_names
вместе с методом has_table для проверки
наличия конкретной таблицы:
from sqlalchemy import create_engine, inspect, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text(
'CREATE TABLE articles ('
'id INTEGER PRIMARY KEY, '
'title VARCHAR(100)'
')'
))
conn.commit()
inspector = inspect(engine)
tables = inspector.get_table_names()
if 'articles' in tables:
print('Table articles found')
else:
print('Table articles not found')
Результат выполнения кода:
"Table articles found"
Смотрите также
-
класс
Inspector,
который предоставляет доступ к метаданным базы данных -
метод
get_columns,
который возвращает список колонок таблицы -
метод
has_table,
который проверяет наличие таблицы в базе -
метод
get_view_names,
который возвращает список имен представлений