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

Поле BigInteger

Поле BigInteger создает столбец для хранения больших целых чисел. Оно используется, когда диапазона обычного Integer недостаточно. В разных СУБД BigInteger отображается на тип BIGINT или аналогичный. Первым параметром можно передать имя столбца, а также дополнительные опции, такие как primary_key, nullable, default и другие.

Синтаксис

BigInteger([name], [primary_key], [nullable], [default])

Пример

Давайте создадим таблицу с полем BigInteger и посмотрим на итоговый SQL-запрос:

from sqlalchemy import create_engine, BigInteger, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(BigInteger, primary_key=True) title: Mapped[str] = mapped_column(String(50)) engine = create_engine('sqlite:///:memory:', echo=True) Base.metadata.create_all(engine)

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

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

Пример

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

from sqlalchemy import create_engine, BigInteger, String, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(BigInteger, primary_key=True) title: Mapped[str] = mapped_column(String(50)) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(id=9223372036854775807, title='article') session.add(article) session.commit() res = session.execute(select(Article.id, Article.title)).all() print(res)

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

[(9223372036854775807, 'article')]

Пример

Давайте добавим в модель поле num с типом BigInteger и зададим значение по умолчанию:

from sqlalchemy import create_engine, BigInteger, String, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(BigInteger, primary_key=True) title: Mapped[str] = mapped_column(String(50)) num: Mapped[int] = mapped_column(BigInteger, default=10000000000) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(id=1, title='article') session.add(article) session.commit() res = session.execute(select(Article.num)).scalar() print(res)

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

10000000000

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

  • поле Integer,
    которое хранит стандартные целые числа
  • поле SmallInteger,
    которое хранит небольшие целые числа
  • поле Numeric,
    которое хранит точные десятичные числа
  • поле Float,
    которое хранит числа с плавающей точкой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить