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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM