在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?
由于
答案 0 :(得分:1)
如果不将日期字段拆分为月份字段,日期字段和年份字段,那么实际上无法按照您的要求进行操作。你可以(可能)更简单,更简单地将整个日期(月/日/年)包含在复合主数据中; if(id,year)唯一地定义一条记录,那么(id,date)也是如此。
答案 1 :(得分:0)
可以分配多列 primary_key =表示a的真旗 多列主键,称为 复合主键。
答案 2 :(得分:0)
您可以在约束中使用函数,但它不是数据库独立的。有关详细信息,请参阅此处:Compound UniqueConstraint with a function
但是我认为最好的办法是创建一年的专栏。这肯定会更容易。