SQLAlchemy中返回新插入数据的id?

数据库中有一个自增长id。

# 创建session对象:
session = DBSession()
# 创建新User对象:
new_user = User(name='Bob')
# 添加到session:
session.add(new_user)
# 提交即保存到数据库:
session.commit()
# 关闭session:
session.close()


问题:session.add(new_user)后,如何获取id?
阅读 18.9k
5 个回答

commit之后

session.query(func.max(User.tid)).one()[0]

仅仅add()是不会有id的。因为还没有真正进入到数据库里面去。

这里你提交了之后如果数据库里有 ID 了,你直接使用
new_user.id 就是能获取到 ID 的啊。
你试试。

新手上路,请多包涵

db.session.flush()
后就可以取id

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
1 篇内容引用
推荐问题
宣传栏