要求:具有自动增量值的复合键。如何定义表格:
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
答案 0 :(得分:0)
这里有很多关于类似问题的问题,答案总是这样(抱歉没有链接,只是搜索'sqlalchemy autoincrement composite'):
sqlalchemy
只能处理整数主键上的自动增量。
这很难过,但确实如此。但是,您始终可以查询按doc_id
和version_number
排序的表格,获取最后一行,然后递增它。我使用与复合键相同的方法。