Метод get_pk_constraint
Метод get_pk_constraint класса Inspector
возвращает словарь с информацией о первичном
ключе таблицы. Первым параметром метод принимает
имя таблицы table_name, вторым необязательным
параметром передается имя схемы schema.
Метод возвращает словарь с ключами
constrained_columns и name.
Синтаксис
inspector.get_pk_constraint(table_name, [schema])
Пример
Давайте создадим таблицу articles с первичным
ключом по столбцу id и посмотрим на его описание:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from sqlalchemy import inspect
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
)
metadata.create_all(engine)
inspector = inspect(engine)
res = inspector.get_pk_constraint('articles')
print(res)
Результат выполнения кода:
{'constrained_columns': ['id'], 'name': None}
Пример
Давайте создадим таблицу с составным первичным ключом из двух столбцов:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from sqlalchemy import inspect
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer, primary_key=True),
Column('num', Integer, primary_key=True),
Column('title', String),
)
metadata.create_all(engine)
inspector = inspect(engine)
res = inspector.get_pk_constraint('articles')
print(res)
Результат выполнения кода:
{'constrained_columns': ['id', 'num'], 'name': None}
Пример
Давайте явно зададим имя ограничения первичного ключа и извлечем его через метод:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, PrimaryKeyConstraint
from sqlalchemy import inspect
engine = create_engine('sqlite:///:memory:')
metadata = MetaData()
articles = Table(
'articles', metadata,
Column('id', Integer),
Column('title', String),
PrimaryKeyConstraint('id', name='pk_articles_id'),
)
metadata.create_all(engine)
inspector = inspect(engine)
res = inspector.get_pk_constraint('articles')
print(res)
Результат выполнения кода:
{'constrained_columns': ['id'], 'name': 'pk_articles_id'}
Смотрите также
-
класс
Inspector,
который предоставляет доступ к метаданным базы -
метод
get_columns,
который возвращает список столбцов таблицы -
метод
get_foreign_keys,
который возвращает информацию о внешних ключах -
метод
get_unique_constraints,
который возвращает информацию об уникальных ограничениях