所以我有一個函數,它創建一個新的對象實例來表示一個帳戶,並使用SQLite3將該帳戶添加到數據庫中的帳戶表。數據庫表有3列,其中之一是主鍵accountID列,由SQL自動設置。我的對象實例需要知道此accountID,以便將來可以在數據庫中找到它自己,但我不確定如何執行此操作。我的代碼:在Python SQLite3中添加新記錄時記錄主鍵?
def createAccount(self, name, balance):
#ensure account name has been entered
if name == "":
messagebox.showwarning(title = "Error", message = "You did not enter an account name.")
return
#Insert new record into accounts table (primary key set automatically)
self.cursor.execute("""INSERT INTO accounts(name, balance) VALUES(?,?)""", (name, balance))
#Create a new Account object instance and add to accounts dictionary
self.accounts[name] = Account(self, self.accountContainer, accountID, name, balance)
問題是將accountID傳遞到帳戶初始化程序;我不知道如何在沒有查詢數據庫的情況下獲得這個記錄,我只是使用名稱和餘額創建的記錄,這聽起來像是一個相當混亂的解決方案。任何想法的工作?
如果ID是由DBMS然後查詢表選擇可能是唯一的解決辦法(希望你沒有重複...)。國際海事組織你最好自己設置ID – GPhilo
可能重複[Sqlite。如何獲取插入後自動遞增主鍵的值,而不是最後\ _insert \ _rowid()?](https://stackoverflow.com/questions/3442033/sqlite-how-to-get-value-of-auto-增量主鍵後插入其他) –