2012-05-05 46 views
1

如何使用sqlite3更新已存在於數據庫中的條目?Python - 更新數據庫

我已經試過:

db_curs.execute("INSERT INTO `database` (cID) VALUES ('Updated')") 

但這當然,創建一個新的條目。我可以獲取(行(?))號(條目)以及更新數據庫的命令是什麼,而不是創建新條目?

編輯:

把好一點,當我轉換SQL入門到Python的列表,我得到以下,

(1, u'GGS-04', u'John', u'Smith', 9, u'0') 

我需要能夠將數字添加到最後一個項目。這是我的。

info = (1, u'GGS-04', u'John', u'Smith', 9, u'0') 

for result in info: 
    ln   = str(result[0]) 
    ggs   = str(result[1]) 
    first_name = str(result[2]) 
    last_name = str(result[3]) 
    dob   = str(result[4]) 
    spend  = str(result[5]) 
while True: 
    res = raw_input("Enter points to add: ") 
    try: 
     int(res) 
     break 
    except: 
     print "Please enter a number..." 
     pass 
spend = str(int(spend) + int(res)) 
db_curs.execute("UPDATE `" + db_name + "` (cID, first_name, last_name, date_of_birth, spend) VALUES ('" + srce + "', '" + first_name + "', '" + last_name + "', '" + dob + "' WHERE '" + spend + "')") 
db_connection.commit() 

有人能解釋一下這個命令的正確語法嗎?如果我只是更新「支出」列而不是從前綴變量中更新它們,這將是非常棒的。 謝謝:)

+2

你的表只有一列?你爲什麼把它的值設置爲''Updated''? –

+2

使用SQL'UPDATE'語句。如果這對你不明顯,我推薦一個SQL教程。 – geoffspear

+0

謝謝,我會用'更新'聲明拍攝一張照片。不,它有多列,我只是舉了一個我嘗試過的例子。 – abkai

回答

0

這應工作:

db_curs.execute("UPDATE database SET spend =`" + spend + "` WHERE cID="+ cID) 

又見SQL Update Syntax

順便說一句, 「數據庫」 是不是數據庫的表中的有用的名稱。關於「用戶」或「消費時間」還是更具描述性?

+0

謝謝,那真是太棒了!並感謝提示。我將它改爲'客戶'謝謝! :) – abkai