【发布时间】:2018-02-28 20:41:02
【问题描述】:
我有以下数据库(test.db): Test Database
如图所示,我创建并填充了一个表格(“stuffToPlot”)。
我想编辑一个特定的行(例如第 5 行),并更改其中的所有值。 我尝试了以下代码:
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
tableToEdit = 'stuffToPlot'
rowToEdit = '5'
unixVar = 5.5
dateStampVar ='feb-2018'
keywordVar = 'Hello World'
valueVar = 25
c.execute("""INSERT INTO """+tableToEdit+""" (unix, datestamp, keyword, value)
VALUES (?,?,?,?) WHERE ROWID =""" +rowToEdit),(unixVar, dateStampVar, keywordVar, valueVar)
conn.commit()
c.close()
conn.close()
尝试运行代码时出现以下错误:
Traceback(最近一次调用最后一次): 文件“C:\Users\Bob\Documents\Eclipse Workspace\Python Test\SQLite3\SQLite3-3.py”,第 19 行,在 值 (?,?,?,?) WHERE ROWID =""" +rowToEdit),(unixVar, dateStampVar, keywordVar, valueVar) sqlite3.OperationalError:靠近“WHERE”:语法错误
我也尝试过使用 UPDATE/SET 方法,但得到不同的错误:
c.execute("""UPDATE """+tableToEdit+""" (unix, datestamp, keyword, value)
SET (?,?,?,?) WHERE ROWID =""" +rowToEdit),(unixVar, dateStampVar, keywordVar, valueVar)
文件“C:\Users\Shaun\Documents\Eclipse Workspace\Python Test\SQLite3\SQLite3-3.py”,第 24 行,在 SET (?,?,?,?) WHERE ROWID =""" +rowToEdit),(unixVar, dateStampVar, keywordVar, valueVar) sqlite3.OperationalError:靠近“(”:语法错误
我只想编辑一个特定的行(使用 ROWID),任何帮助将不胜感激。
【问题讨论】:
标签: python sqlite sql-update sql-insert