我有一个sqlite3表,如下所示
记录(WordID INTEGER PRIMARY KEY,Word TEXT,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 Record”) sqlite3.OperationalError:“TABLE”附近:语法错误
我应该如何编写代码来更新表?
答案 0 :(得分:0)
UPDATE
的SQL查询无效 - 请参阅the documentation。
另外,我不明白你为什么要在更新时检查表的存在,因为就在你创建它之前它是否存在。
如果您的目标是更新条目(如果条目存在)或插入条目(如果条目不存在),您可以通过以下方式进行更新:
UPDATE
并检查更新的行数。如果为0,则表示记录不存在,您应该INSERT
代替。INSERT
- 如果存在与违反约束相关的错误,您知道该条目已经存在,您应该改为UPDATE
。