sqlalchemy 和 django 插入操作后自动返回自增ID
Posted CrossPython
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlalchemy 和 django 插入操作后自动返回自增ID相关的知识,希望对你有一定的参考价值。
result = session.execute(‘insert into ***‘)
session.commit()
last_insert_id = result.lastrowid
注意:如果存在多个用户操作数据库,应保持每个用户或者每个请求线程拥有各自隔离的session
https://segmentfault.com/q/1010000004328560
def test_add(other):
u = TestClass()
u.Other = other
session = database.get_session()
try:
session.add(u)
session.commit()
return u.Id
except:
return false
finally:
session.close()
ui = UserInfo(userName=‘user‘+str(random.randint(1,10000)))
print ui.userId
ui.save()
print ui.userId
应该第二次调用ui.userId 会得到返回值,但是,却没有。
非常奇怪
解决办法:
将IntegerField 换成 AutoField
解决:http://stackoverflow.com/questions/7689553/empty-id-after-saving-model-to-database
https://blog.csdn.net/iteye_16613/article/details/82573956
以上是关于sqlalchemy 和 django 插入操作后自动返回自增ID的主要内容,如果未能解决你的问题,请参考以下文章
flask_day05:信号 Django信号 flask-script sqlalchemy 创建操作数据表