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

Метод append_constraint

Метод append_constraint класса Table добавляет объект ограничения к таблице. Первым параметром метод принимает объект ограничения, например Constraint, PrimaryKeyConstraint, UniqueConstraint, CheckConstraint или ForeignKeyConstraint. Ограничение добавляется в коллекцию constraints таблицы.

Синтаксис

Table.append_constraint(constraint)

Пример

Давайте создадим таблицу и добавим к ней ограничение уникальности через метод append_constraint:

from sqlalchemy import MetaData, Table, Column, Integer, String from sqlalchemy import UniqueConstraint metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String) ) uq = UniqueConstraint('title', name='uq_articles_title') articles.append_constraint(uq) print(articles.constraints)

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

{UniqueConstraint('title', name='uq_articles_title')}

Пример

Давайте добавим к таблице ограничение проверки через метод append_constraint:

from sqlalchemy import MetaData, Table, Column, Integer, String from sqlalchemy import CheckConstraint metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('num', Integer) ) ck = CheckConstraint('num > 0', name='ck_articles_num') articles.append_constraint(ck) for constraint in articles.constraints: print(constraint.name)

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

"ck_articles_num"

Пример

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

from sqlalchemy import MetaData, Table, Column, Integer, String from sqlalchemy import ForeignKeyConstraint, create_engine 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('user_id', Integer) ) fk = ForeignKeyConstraint(['user_id'], ['users.id']) articles.append_constraint(fk) engine = create_engine('sqlite:///:memory:') metadata.create_all(engine) print(articles.constraints)

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

{ForeignKeyConstraint(['user_id'], ['users.id'])}

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

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

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

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