SQLlalchemy 核心自动增量整数列,它是唯一约束的一部分



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

    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

这里有很多

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

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

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

最新更新