在python中的sqlite3中,我試圖創建一個程序,其中要寫入的表中的新行將插入下一個,需要打印出來。但我只是讀了documentation here,在execute()語句中應該使用INSERT。問題在於我要提供的程序要求用戶輸入他/她的信息,並且必須爲成員分配主密鑰ID,因爲他/她的ID號碼必須顯示。換句話說,不應該首先執行execute(「INSERT」)語句,因爲ID鍵在分配成員時會出錯。lastrowid()替代或語法沒有使用在sqlite python中執行?
我首先想到lastrowid可以在不使用execute(「INSERT」)的情況下運行,但我注意到它總是給我值「None」。然後我閱讀python中的sqlite3中的文檔,並使用Google搜索替代方法來解決此問題。
我已經通過谷歌閱讀的地方,可以使用SELECT last_insert_rowid(),但它會是沒問題,它是什麼語法在Python?我已經試過編碼像這樣
NextID = con.execute("select last_insert_rowid()")
,但它只是給了我一個光標對象輸出「」
我也一直在思考只是讓另一個表,其中總會有隻有一個值。當主表中有新的數據輸入時,它將獲得主表lastrowid的值。它的值將被插入並覆蓋到另一個表中,這樣每當需要在主表中輸入一組新數據並且需要下一個行ID時,它將只訪問具有該值的表。
或者是否有這樣做的替代和更簡單的方法?
任何幫助是非常讚賞鞠躬深深
插入部分記錄,標記爲未啓用,現在您可以顯示數據。用完整的數據更新它,並在有其他信息時將其標記爲啓用。 – btilly 2011-03-01 01:41:03
@btilly - 請問如何將其標記爲「未啓用」,是否可以?所以你說的是,當完整的數據將被添加,它首先刪除第一個數據?我很抱歉,我不確定我是否理解^^ ;; – hyoumoku 2011-03-01 09:12:55
我的意思是說,你在所有查詢中都會有一個字段放在過濾器上,表示「忽略這個」。這從忽略狀態開始,然後在完成時翻轉它。如果更改其他查詢太難了,可以總是有兩個表。你首先插入一個主鍵ID。然後你將完成的數據複製到另一個,它不會嘗試創建任何主鍵ID。這是浪費,但可能更容易實施。 – btilly 2011-03-01 16:16:28