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