Определение части столбца как уникального поля в sqlalchemy - PullRequest
0 голосов
/ 21 июня 2010

В sqlalchemy 0.5 у меня есть таблица, определенная так:

orders = Table('orders', metadata,
    Column('id', Integer, primary_key=True),
    Column('responsable', String(255)),
    Column('customer', String(255)),    
    Column('progressive', Integer),
    Column('date', Date),
    Column('exported', Boolean()),    
)

Можно ли определить только клиента и год даты как уникальные?Год не является столбцом только частью даты, но было бы неплохо, чтобы год даты и клиент были единым ключом таблицы.Возможно ли это в sqlalchemy 0.5?

Спасибо

Ответы [ 3 ]

1 голос
/ 21 июня 2010

Не разбивая поле даты на поле месяца, поле даты и поле года, на самом деле нет способа сделать то, что вы просите. Для вас (вероятно) будет проще и проще включить целую дату (месяц / день / год) в составной первичный элемент; если (id, год) однозначно определяет запись, то будет (id, дата).

0 голосов
/ 26 июня 2010

Вы можете использовать функцию в ограничении, но она не зависит от базы данных. Подробности смотрите здесь: Составное уникальное ограничение с функцией

Однако я бы сказал, что лучше всего создать колонку на год. Это конечно будет легче.

0 голосов
/ 21 июня 2010

Документация :

Несколько столбцов могут быть назначены primary_key = True флаг, который обозначает многоколонный первичный ключ, известный как составной первичный ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...