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

Атрибут comment класса Column

Атрибут comment класса Column хранит текстовый комментарий к столбцу таблицы. Комментарий задается параметром comment при создании столбца и попадает в DDL-выражение CREATE TABLE, если это поддерживает диалект СУБД. Значением атрибута является строка или None, если комментарий не задан.

Синтаксис

Column(comment='текст комментария')

Пример

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

from sqlalchemy import Column, Integer, String id_col = Column(Integer, primary_key=True, comment='article identifier') title_col = Column(String, comment='article title') print(id_col.comment) print(title_col.comment)

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

"article identifier" "article title"

Пример

Давайте посмотрим на значение атрибута, когда комментарий не задан:

from sqlalchemy import Column, Integer num_col = Column(Integer) print(num_col.comment)

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

None

Пример

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

from sqlalchemy import Column, Integer, String, Text, create_engine from sqlalchemy.orm import DeclarativeBase class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id = Column(Integer, primary_key=True, comment='article identifier') title = Column(String, comment='article title') text = Column(Text, comment='article body') status = Column(String, comment='article status') num = Column(Integer, comment='article number') engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) print(Article.__table__.c.id.comment) print(Article.__table__.c.title.comment)

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

"article identifier" "article title"

Пример

Давайте посмотрим, как комментарий столбца попадает в DDL-выражение CREATE TABLE:

from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.orm import DeclarativeBase from sqlalchemy.schema import CreateTable class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id = Column(Integer, primary_key=True, comment='article identifier') title = Column(String, comment='article title') engine = create_engine('sqlite:///:memory:') print(CreateTable(Article.__table__).compile(engine))

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

CREATE TABLE articles ( id INTEGER NOT NULL, title VARCHAR, PRIMARY KEY (id) )

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

  • класс Column,
    который представляет столбец таблицы
  • атрибут name,
    который хранит имя столбца
  • атрибут type,
    который хранит тип данных столбца
  • атрибут nullable,
    который указывает допустимость значения NULL
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить