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

Метод append_foreign_key

Метод append_foreign_key класса Column добавляет объект внешнего ключа ForeignKey к текущей колонке. Первым параметром метод принимает объект внешнего ключа. Метод используется преимущественно во внутренних механизмах SQLAlchemy и при динамическом построении схемы, когда колонка уже создана, а внешний ключ нужно привязать к ней позже.

Синтаксис

Column.append_foreign_key(foreign_key)

Пример

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

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) ) articles.c.user_id.append_foreign_key(ForeignKey('users.id')) for fk in articles.c.user_id.foreign_keys: print(fk)

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

"ForeignKey('users.id')"

Пример

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

from sqlalchemy import MetaData, Table, Column, Integer, String, ForeignKey from sqlalchemy.schema import CreateTable from sqlalchemy.dialects import sqlite 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) ) articles.c.user_id.append_foreign_key(ForeignKey('users.id')) print(len(articles.c.user_id.foreign_keys)) print(CreateTable(articles).compile(dialect=sqlite.dialect()))

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

"1"

Итоговый SQL запрос:

CREATE TABLE articles ( id INTEGER NOT NULL, title VARCHAR, user_id INTEGER, PRIMARY KEY (id), FOREIGN KEY(user_id) REFERENCES users (id) )

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

  • класс Column,
    который представляет колонку таблицы
  • метод references,
    который проверяет ссылку колонки на другую
  • метод copy,
    который создает копию колонки
  • атрибут table,
    который возвращает таблицу колонки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить