Python 在SqlAlchemy中,如何使用DateTime列和另一列的日期部分创建UniqueConstraint?
假设我有一个这样的模型:Python 在SqlAlchemy中,如何使用DateTime列和另一列的日期部分创建UniqueConstraint?,python,postgresql,sqlalchemy,unique-constraint,Python,Postgresql,Sqlalchemy,Unique Constraint,假设我有一个这样的模型: from sqlalchemy import Column, DateTime, ForeignKey, Text class Foo(declarative_base): __tablename__ = "foos" my_dt = Column(DateTime...) my_other_value = Column(Integer...) 我正在尝试使用SqlAlchemy表示法,每天只允许一个my_other_值,这意味着,我想提取
from sqlalchemy import Column, DateTime, ForeignKey, Text
class Foo(declarative_base):
__tablename__ = "foos"
my_dt = Column(DateTime...)
my_other_value = Column(Integer...)
我正在尝试使用SqlAlchemy表示法,每天只允许一个my_other_值
,这意味着,我想提取my_dt
的日期
部分,并使用my_other_值对其进行唯一约束
我知道(呃……我相当肯定我知道)如何在PostgreSQL中实现这一点:
CREATE UNIQUE INDEX unique_num_and_date
ON foos(my_other_value, date_trunc('day',my_dt));
但出于好奇/一致性,我想用SqlAlchemy来反映这一点。试试下面的方法:
class MyModel(Base):
__tablename__ = 'my_model'
__table_args__ = (UniqueConstraint('name', 'deleted_at'),)
name = Column(String(length=64), nullable=False)
deleted_at = Column(DateTime(), nullable=True)
相关:谢谢你的回答!然而,我试图做的是提取
DateTime
列的Date
部分,并在约束本身中使用它。它可能是这样的:\u表\u参数\u=(UniqueConstraint('name',function\u,我正在寻找的\u,从\u列('deleted\u at')中提取\u日期的\u),
如果问题不清楚,很抱歉。