我需要創建序列,但在通用情況下不使用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