根据sqlalchemy unique across multiple columns的答案(我使用下面给出的声明版),我尝试声明一个多列唯一性约束。
class Location(Base):
__tablename__ = 'locations'
id = Column(Integer, primary_key = True)
customer_id = Column(Integer, ForeignKey('customers.customer_id'), nullable=False)
location_code = Column(Unicode(10), nullable=False)
__table_args__ = (UniqueConstraint('customer_id', 'location_code', name='_customer_location_uc'),
)
然而,当我使用相同的customer_id和location_code创建多个项目时,SQLAlchemy不会产生任何唯一性异常,并且这些项目被成功创建。
在链接答案下面的评论中,有关于指定UniqueConstraint仅作为DDL的部分对话。我需要执行哪些其他操作才能强制执行此约束条件?