如何在sqlite3中添加部分行数据,在python中一次添加一列

如何在sqlite3中添加部分行数据,在python中一次添加一列,python,sqlite,Python,Sqlite,我的python代码生成一个条件(例如向上、向下、向左、向右),该条件发生时的开始时间,以及在将来某个时候该条件结束时的结束时间 目前,代码在数据库中生成以下输出 现状 条件|开始时间|结束时间 向上|零|零 空| 44:03.1 |空 空|空| 44:05.2 向下|零|零 空| 44:05.2 |空 空|空| 44:20.4 右|空|空 空| 44:20.4 |空 空|空| 44:21.6 这是我当前用于记录第一个值(条件方向)的代码: c.execute('INSERT

我的python代码生成一个条件(例如向上、向下、向左、向右),该条件发生时的开始时间,以及在将来某个时候该条件结束时的结束时间

目前,代码在数据库中生成以下输出

现状 条件|开始时间|结束时间 向上|零|零


空| 44:03.1 |空


空|空| 44:05.2


向下|零|零


空| 44:05.2 |空


空|空| 44:20.4


右|空|空


空| 44:20.4 |空


空|空| 44:21.6


这是我当前用于记录第一个值(条件方向)的代码:

c.execute('INSERT INTO conditionsAndTimesToPlot (condition_direction) VALUES (?)', (condition,))
conn.commit()
在发生其他事情后,开始时间将记录为:

c.execute('INSERT INTO conditionsAndTimesToPlot (start_time) VALUES (?)', (start_time_full,))
        conn.commit()
c.execute('INSERT INTO conditionsAndTimesToPlot (end_time) VALUES (?)', (end_time_full,))
                    conn.commit()
然后在任意时间后,该条件结束,并记录结束时间:

c.execute('INSERT INTO conditionsAndTimesToPlot (start_time) VALUES (?)', (start_time_full,))
        conn.commit()
c.execute('INSERT INTO conditionsAndTimesToPlot (end_time) VALUES (?)', (end_time_full,))
                    conn.commit()
我想要达到的目标 条件|开始时间|结束时间 上升| 44:03.1 | 44:05.2


向下| 44:05.2 | 44:20.4


右| 44:20.4 | 44:21.6


我试过的 我尝试使用UPDATE作为时间参数。我原以为插入条件方向会插入新行,更新开始时间和结束时间会自然地回填第2列和第3列,但现在我在终端中发现了这个错误:

sqlite3.OperationalError: near "INTO": syntax error
问题
  • 是不是有什么明显的东西让我错过了
  • 我是否应该创建3个表(每个表对应一个值[条件、开始时间、结束时间],然后编写代码,将这三个表按行组合成循环中每个周期的单个表
谢谢你对我的第一个问题的帮助


David

在将
更新修复为
错误后(在
更新
后将无
修复为
并进一步研究文档后,我发现了以下资源:
和

我的代码现在通过执行以下操作生成我想要实现的表外观。第一部分不变,这将创建每一新行:

c.execute('INSERT INTO conditionsAndTimesToPlot (condition_direction) VALUES (?)', (condition,))
conn.commit()
这将生成say Left | NULL | NULL。然后,您可以做的不是为下一列插入,而是更新并查找下一列中存在NULL值的列:

c.execute("UPDATE conditionsAndTimesToPlot SET start_time = (?) WHERE start_time IS NULL", (start_time_full,))
conn.commit()
c.execute("UPDATE conditionsAndTimesToPlot SET end_time = (?) WHERE end_time IS NULL", (end_time_full,))
conn.commit()
这会产生say Left | 44:03.1 | NULL。然后,对于结束时间,也会产生相同的结果,请查找NULL值:

c.execute("UPDATE conditionsAndTimesToPlot SET start_time = (?) WHERE start_time IS NULL", (start_time_full,))
conn.commit()
c.execute("UPDATE conditionsAndTimesToPlot SET end_time = (?) WHERE end_time IS NULL", (end_time_full,))
conn.commit()

这将产生say Left | 44:03.1 | 44:05.2。问题现在已完全解决。

Update
中没有
INTO
关键字。请先查看
Update
文档。