我需要创建序列,但在通用情况下不使用Sequence
类。唯一序列号到列
USN = Column(Integer, nullable = False, default=nextusn, server_onupdate=nextusn)
,这funcion nextusn
是需要生成模型func.max(table.USN)
值的行。
我尝试使用这个
class nextusn(expression.FunctionElement):
type = Numeric()
name = 'nextusn'
@compiles(nextusn)
def default_nextusn(element, compiler, **kw):
return select(func.max(element.table.c.USN)).first()[0] + 1
但在这种情况下元素不知道element.table
。存在的方式来解决这个问题?
答:1。是的。 2.是的,不安全。我试着用桌子。类似于序列。 3.是的。我是sqlalchemy的笨蛋。我现在明白了。我在更新这些行时遇到问题。我正在研究如何在表格中保留序列。谢谢你的回答。 – Jones 2013-05-06 03:48:18