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

Атрибут foreign_keys

Атрибут foreign_keys класса Table возвращает коллекцию объектов ForeignKey, которые описывают внешние ключи таблицы. Каждый внешний ключ связывает столбец текущей таблицы со столбцом другой таблицы. Атрибут доступен только для чтения и автоматически обновляется при добавлении столбцов с внешними ключами через append_column или при создании таблицы с ограничениями ForeignKeyConstraint.

Синтаксис

table.foreign_keys

Пример

Давайте создадим таблицу с внешним ключом и посмотрим на атрибут foreign_keys:

from sqlalchemy import MetaData, Table, Column, Integer, String, ForeignKey metadata = MetaData() users = Table( 'users', metadata, Column('id', Integer, primary_key=True), Column('name', String) ) articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('user_id', Integer, ForeignKey('users.id')) ) print(articles.foreign_keys)

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

"{ForeignKey('users.id')}"

Пример

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

from sqlalchemy import MetaData, Table, Column, Integer, String, ForeignKey metadata = MetaData() users = Table( 'users', metadata, Column('id', Integer, primary_key=True), Column('name', String) ) articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('user_id', Integer, ForeignKey('users.id')) ) for fk in articles.foreign_keys: print(fk.column) print(fk.parent)

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

"users.id" "articles.user_id"

Пример

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

from sqlalchemy import MetaData, Table, Column, Integer, String, ForeignKey metadata = MetaData() users = Table( 'users', metadata, Column('id', Integer, primary_key=True), Column('name', String) ) articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String) ) print(len(articles.foreign_keys)) articles.append_column(Column('user_id', Integer, ForeignKey('users.id'))) print(len(articles.foreign_keys))

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

"0" "1"

Пример

Давайте получим таблицу, на которую ссылается внешний ключ, через атрибут column:

from sqlalchemy import MetaData, Table, Column, Integer, String, ForeignKey metadata = MetaData() users = Table( 'users', metadata, Column('id', Integer, primary_key=True), Column('name', String) ) articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('user_id', Integer, ForeignKey('users.id')) ) for fk in articles.foreign_keys: print(fk.column.table.name)

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

"users"

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

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