更新时重新生成SQLalchemy序列

想象一下,我的模型中有一个这样的类:

class Sample(Base):
    __tablename__ = 'sample'
    id = Column(Integer,primary_key=True)
    firstname = Column(String(50))
    lastname = Column(String(50))
    auto_generated_code = Column(
        Integer,Sequence('sample_auto_generated_code_sequence'),unique=True
    )

当我将实例添加到Sample类时,刷新会话后,我的实例会自动获得一个整数。到目前为止一切都很好。

我还想要的是,当我更新提到的实例的任何其他列时,它应该自动获得一个新的auto_generated_code。 简而言之,我也希望我的Sequenceupdate上生成另一个代码。我该如何实现?

zhouyu2020 回答:更新时重新生成SQLalchemy序列

我找到了一个答案,我们可以像这样在Sqlalchemy中获得Sequence对象:

from sqlalchemy import Sequence

seq = Sequence('sample_auto_generated_code_sequence')

然后我们可以通过在连接或会话上执行下一个序列来获取

instance.auto_generated_code = session.execute(seq) # or conn.execute(seq)

然后将其添加到会话中就可以了。

本文链接:https://www.f2er.com/3059988.html

大家都在问