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

Метод get_multi_columns класса Inspector

Метод get_multi_columns класса Inspector возвращает сведения о колонках сразу для нескольких таблиц. Первым параметром метод принимает словарь, где ключами выступают имена схем, а значениями - списки имен таблиц. Если передать пустой список таблиц, метод вернет колонки всех таблиц указанной схемы. Вторым параметром можно передать имя схемы, используемой по умолчанию.

Синтаксис

inspector.get_multi_columns(schema_tables, [schema])

Пример

Давайте создадим движок и получим колонки всех таблиц схемы по умолчанию:

from sqlalchemy import create_engine, inspect engine = create_engine('sqlite:///:memory:') with engine.begin() as conn: conn.exec_driver_sql( 'CREATE TABLE articles (' 'id INTEGER PRIMARY KEY, ' 'title VARCHAR(100), ' 'text TEXT)' ) conn.exec_driver_sql( 'CREATE TABLE users (' 'id INTEGER PRIMARY KEY, ' 'name VARCHAR(50))' ) inspector = inspect(engine) res = inspector.get_multi_columns({None: []}) for table_name, columns in res.items(): print(table_name) for column in columns: print(' ', column['name'], column['type'])

Результат выполнения кода:

articles id INTEGER title VARCHAR(100) text TEXT users id INTEGER name VARCHAR(50)

Пример

Давайте получим колонки только одной конкретной таблицы, передав ее имя в списке:

from sqlalchemy import create_engine, inspect engine = create_engine('sqlite:///:memory:') with engine.begin() as conn: conn.exec_driver_sql( 'CREATE TABLE articles (' 'id INTEGER PRIMARY KEY, ' 'title VARCHAR(100), ' 'text TEXT)' ) conn.exec_driver_sql( 'CREATE TABLE users (' 'id INTEGER PRIMARY KEY, ' 'name VARCHAR(50))' ) inspector = inspect(engine) res = inspector.get_multi_columns({None: ['articles']}) for table_name, columns in res.items(): print(table_name) for column in columns: print(' ', column['name'])

Результат выполнения кода:

articles id title text

Пример

Давайте выведем подробную информацию о каждой колонке, включая признак первичного ключа и допустимость значения NULL:

from sqlalchemy import create_engine, inspect engine = create_engine('sqlite:///:memory:') with engine.begin() as conn: conn.exec_driver_sql( 'CREATE TABLE articles (' 'id INTEGER PRIMARY KEY, ' 'title VARCHAR(100) NOT NULL, ' 'status VARCHAR(20))' ) inspector = inspect(engine) res = inspector.get_multi_columns({None: ['articles']}) for table_name, columns in res.items(): for column in columns: print(column['name']) print(' type:', column['type']) print(' nullable:', column['nullable']) print(' primary key:', column['primary_key'])

Результат выполнения кода:

id type: INTEGER nullable: False primary key: 1 title type: VARCHAR(100) nullable: False primary key: 0 status type: VARCHAR(20) nullable: True primary key: 0

Пример

Давайте получим колонки сразу для нескольких таблиц, перечислив их в списке:

from sqlalchemy import create_engine, inspect engine = create_engine('sqlite:///:memory:') with engine.begin() as conn: conn.exec_driver_sql( 'CREATE TABLE articles (' 'id INTEGER PRIMARY KEY, ' 'title VARCHAR(100))' ) conn.exec_driver_sql( 'CREATE TABLE users (' 'id INTEGER PRIMARY KEY, ' 'name VARCHAR(50))' ) conn.exec_driver_sql( 'CREATE TABLE comments (' 'id INTEGER PRIMARY KEY, ' 'num INTEGER)' ) inspector = inspect(engine) res = inspector.get_multi_columns( {None: ['articles', 'users']} ) for table_name, columns in res.items(): names = [column['name'] for column in columns] print(table_name, names)

Результат выполнения кода:

articles ['id', 'title'] users ['id', 'name']

Смотрите также

  • класс Inspector,
    который предоставляет доступ к метаданным базы данных
  • метод get_columns,
    который возвращает колонки одной таблицы
  • метод get_table_names,
    который возвращает список имен таблиц
  • метод get_pk_constraint,
    который возвращает информацию о первичном ключе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить