Определение столбцов
Для определения столбца для класса Column и mapped_column можно установить ряд параметров. Отметим основные:
-
name: имя столбца. Названия в нижнем регистре считаются регистронезависимыми. Если параметр опущен, то по умолчанию используются названия атрибутов. Это первый позиционный аргумент. -
type_: тип данных столбца, который задается в виде объекта подкласса TypeEngine. Это второй позиционный аргумент -
autoincrement: задает автоинкремент значения столбца. Может иметь значения True, False, auto. Значениеauto- значение по умолчанию, которое говорит, что стобец первичного ключа с типом INTEGER будет автоматически увеличивать свое значение при добавлении нового объекта в таблицу. Данный параметр применяется только для столбцов с типами INT, SMALLINT, BIGINT. -
default: устанавливает значение по умолчанию -
index: если равенTrue, то для столбца будет создаваться индекс -
nullable: если равенFalse, то к определению столбца в бд будет добавляться ограничениеNOT NULL. Для всех столбцов, кроме столбца первичного ключа, значение по умолчанию -True -
primary_key: если равенTrue, то столбец будет считаться первичным ключом -
unique: если равенTrue, то для столбца будет создаваться ограничениеUNIQUE, благодаря чему столбец будет поддерживать только уникальные значения
Общие типы задают столбец, который может читать, записывать и хранить определенный тип данных Python. SQLAlchemy при выпуске оператора CREATE TABLE будет выбирать наилучший тип столбца базы данных, доступный в целевой базе данных.
В качестве типов для столбцов можно использовать один из следующих встроенных типов:
-
BigInteger: Тип для больших целых чиселint. -
Boolean: булевый тип -
Date: Тип для объектовdatetime.date(). -
DateTime: Тип для объектовdatetime.datetime(). -
Enum: тип Enum -
Float: тип для чисел с плавающей точкой, например,FLOATиREAL. -
Integer: целые числа -
Interval: объектdatetime.timedelta() -
LargeBinary: большие наборы байтов -
MatchType: соответствует результату оператора MATCH. -
Numeric: базовый тип для дробных числовых данных, например,NUMERIC,FLOAT,DECIMAL. -
PickleType: для объектов Python, которые сериализованы с помощью модуля pickle. -
SmallInteger: целые числа -
String: строки -
Text: строки произвольной длины. -
Time: объектdatetime.time() -
Unicode: строка символов Unicode произвольной длины. -
UnicodeText: строка Unicode неограниченной длины.