documentation有这个例子:
t = Table('test', meta,
Column('abc', MyType, default=func.generate_new_value(), primary_key=True)
)
如果使用Table.insert(),则func.generate_new_value()表达式将在标量SELECT语句的上下文中预先执行,新值将应用于后续INSERT,而在同时可用于ResultProxy.inserted_primary_key属性。
然而,它没有说明如何定义func.generate_new_value()
。
我需要定义一个函数,它将从所有abc
行中选择max test
元素(在我的情况下不是主键),然后将其递增1,然后将此值传递给希望SQLAlchemy可以在新行中插入它。
答案 0 :(得分:1)
func.ANYTHING()实际上是从数据库中调用SQL函数。 '任何东西'是该函数的名称。因此,您必须直接在数据库上将函数定义为SQL函数。