sqlalchemy flush() and get inserted id?

前端 未结 6 2026
北海茫月
北海茫月 2020-12-07 11:20

I want to do something like this:

f = Foo(bar=\'x\')
session.add(f)
session.flush()

# do additional queries using f.id before commit()
print f.id # should b         


        
6条回答
  •  长情又很酷
    2020-12-07 11:50

    Thanks for everybody. I solved my problem by modifying the column mapping. For me, autoincrement=True is required.

    origin:

    id = Column('ID', Integer, primary_key=True, nullable=False)
    

    after modified:

    id = Column('ID', Integer, primary_key=True, autoincrement=True, nullable=True)
    

    then

    session.flush()  
    print(f.id)
    

    is ok!

提交回复
热议问题