2011-08-12 28 views
0

更新SQLite表我有一個sqlite3的表如下所示插入/從Python程序

記錄(的wordID INTEGER PRIMARY KEY,字文,WORDCOUNT INTEGER,Docfrequency REAL)。 如果表格不存在,我想創建表格並將數據插入到此表格中,否則我想更新表格,使得'Wordcount'列在'Word'列中的數據基礎(參考)上得到更新。我試圖從一個Python程序執行此類似

import sqlite3 
conn = sqlite3.connect("mydatabase") 

c = conn.cursor() 
#Create table 
c.execute("CREATE TABLE IF NOT EXISTS Record(WordID INTEGER PRIMARY KEY, Words TEXT, Wordcount INTEGER, Docfrequency REAL)") 

#Update table 
c.execute("UPDATE TABLE IF EXISTS Record") 

#Insert a row of data 
c.execute("INSERT INTO Record values (1,'wait', 9, 10.0)") 
c.execute("INSERT INTO Record values (2,'Hai', 5, 6.0)") 

#Updating data 
c.execute("UPDATE Record SET Wordcount='%d' WHERE Words='%s'" %(11,'wait')) 

但我無法更新表。在運行該程序,我收到錯誤消息

c.execute(「UPDATE TABLE IF EXISTS記錄」) sqlite3.OperationalError:近「TABLE」:語法錯誤

我應該如何代碼寫入更新表格?

回答

0

UPDATE你的SQL查詢是無效的 - 看到the documentation

另外,我不明白爲什麼你想要更新時檢查表的存在,因爲就在你創建它之前,如果它不存在。

如果你的目標是,如果它沒有,如果它的存在是爲了更新條目或插入,你可以做到這一點無論是:

  • 首先做一個UPDATE和檢查更新的行數。如果爲0,你知道記錄並不存在,你應該INSERT代替。
  • 首先做一個INSERT - 如果有與違反約束有關的錯誤,您知道該條目已經存在,您應該改爲UPDATE