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