sqlalchemy core autoincrement整数列,它是唯一约束的一部分

时间:2016-04-25 11:18:53

标签: python sqlalchemy

要求:具有自动增量值的复合键。如何定义表格:

    doc_versions = Table("doc_versions", metadata,
                         Column("id", Integer, primary_key=True),
                         Column("doc_id", Integer,ForeignKey("docs.id")),
                         Column("version_number", Integer, default=select([
                    func.max(1, 1)])),
                         UniqueConstraint("doc_id","version_number",
                                          name="doc_version")
                         )

如何初始化复合键的版本号,即doc_id + version_number应该是唯一的并采用下一个序列。我想只使用sqlalchemy核心1.0.8

1 个答案:

答案 0 :(得分:0)

这里有很多关于类似问题的问题,答案总是这样(抱歉没有链接,只是搜索'sqlalchemy autoincrement composite'):

sqlalchemy只能处理整数主键上的自动增量。

这很难过,但确实如此。但是,您始终可以查询按doc_idversion_number排序的表格,获取最后一行,然后递增它。我使用与复合键相同的方法。