我尝试在flask + sqlalchemy下用postgres作为db创建一个多列唯一键。它在tinysql上运行得很好,但不知何故postgres不太喜欢它,它为每列创建了一个唯一约束,而不是为所有列创建一个唯一约束......有什么办法可以解决这个问题吗?我应该为唯一约束添加另一个关键字还是索引?
class XYZ(sqla.Model)
id = sqla.Column(sqla.Integer, primary_key=True, autoincrement=True)
article_id = sqla.Column(sqla.Integer, sqla.ForeignKey('article.id'))
story_id = sqla.Column(sqla.Integer, sqla.ForeignKey('story.id'))
article_position = sqla.Column(sqla.Integer)
__table_args__ = (
sqla.UniqueConstraint('article_id', 'story_id', 'article_position',
name='unique_article_story_pos'),
)
1条答案
按热度按时间qyzbxkaa1#
我发现了一个令人惊讶的解决方案。我批量提交了大量的实体到数据库。为了测试的目的,我把我的提交移动到每个项目。问题解决了。但是为什么呢?为什么当我在TinySql数据库上运行同样的脚本时没有发生呢?