如何在遍历表时更新python SQLite行

时间:2014-01-14 17:07:53

标签: python sql sqlite

我是SQLite for python的新手,我对如何在遍历表格时更新行感到困惑。

以下是一些示例代码:

import sqlite3 as lite

points = [
    (1,2,3),
    (4,5,6),
    (7,8,9),
    (10,11,12)
]

point_data = lite.connect('points.db')
cur = point_data.cursor()

cur.execute("DROP TABLE IF EXISTS points")
cur.execute("CREATE TABLE points(x1,y1,z1)")
cur.executemany("INSERT INTO points VALUES(?, ?, ?)", points)

cur.execute("SELECT * FROM points")

while True:
    row = cur.fetchone()
    if row == None:
        break
    row_sum = row[0]+row[1]+row[2]

我想知道如何使用row_sum命令将UPDATE作为第四列插入。在定义表时,是否必须定义第四个“列”?

1 个答案:

答案 0 :(得分:3)

是的,但你不会在Python中这样做。

SQL数据库具有固定的结构,您需要在CREATE TABLE语句中创建一个总列,或者通过UPDATE TABLE ... ADD COLUMN语句添加它。

但是,然后,您可以只执行一次UPDATE:

,而不是SELECT后跟UPDATE
UPDATE points SET total = (x1 + y1 + z1);

但是请注意,您可能根本不需要在db中存储总数:您可以在执行SELECT时以完全相同的方式动态计算它:

SELECT x1, y1, z1, x1+y1+z1 as total FROM points;