【发布时间】:2016-11-22 16:55:32
【问题描述】:
python 和 sqlite 的新手,所以我正在尝试更新我的 sqlite 数据库。
我在填写的行上有 x 列,其余为空。然后我希望回到这些行并更新我尚未填写的为空的列。
如何通过添加尚未输入的新数据来更新行?
我将在下面显示我已尝试使用 WHERE 找到要更新的正确行,并且我使用 SET 来设置这些新值。
设置:
c.execute('CREATE TABLE IF NOT EXISTS PowerSysInfo(time REAL, NumOfNodes INT, NumOfBuses INT, BusLocation TEXT, PhaseNumber INT, v1 REAL, a1 REAL, phase1 INT, v2 REAL, a2 REAL, phase2 INT, v3 REAL, a3 REAL, phase3 INT)')
输入我的行:
c.execute("INSERT INTO PowerSysInfo(time, NumOfNodes, NumOfBuses, BusLocation, PhaseNumber, v1, a1, phase1) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ",
(mins, numNode, Numbus, bus, numNode, busVoltages[i], busVoltages[i+1], node))
conn.commit()
现在当我尝试更新上面的行时:
c.execute("UPDATE PowerSysInfo SET v2 = ?, a2 = ?, phase2 = ? WHERE time = ?, BusLocation = ?", [busVoltages[i], busVoltages[i+1], node, mins, bus])
conn.commit()
我得到 OperationalError: near ",": 语法错误
我一直在查看更新语句,找不到一个可以用变量准确更新 null 的语句。但是为什么这不起作用呢?
提前感谢您的帮助。
【问题讨论】:
-
由于这被忽略了,我将添加上下文。我在这个解决方案上尝试了第一行代码,这导致我出现这个错误stackoverflow.com/questions/16322031/…