Python - 更新数据库

时间:2012-05-05 11:58:54

标签: python sqlite

如何使用sqlite3更新已存在于数据库中的条目?

我试过了:

db_curs.execute("INSERT INTO `database` (cID) VALUES ('Updated')")

但是,这当然会创造一个新的条目。我可以获得(行(?))数字(条目)以及更新数据库的命令而不是创建新条目?

编辑:

更好一点,当我将SQL条目转换为python列表时,我得到以下内容,

(1, u'GGS-04', u'John', u'Smith', 9, u'0')

我需要能够在最后一个项目上添加一个数字。这就是我所拥有的。

info = (1, u'GGS-04', u'John', u'Smith', 9, u'0')

for result in info:
    ln           = str(result[0])
    ggs          = str(result[1])
    first_name   = str(result[2])
    last_name    = str(result[3])
    dob          = str(result[4])
    spend        = str(result[5])
while True:
    res = raw_input("Enter points to add: ")
    try:
        int(res)
        break
    except:
        print "Please enter a number..."
        pass
spend = str(int(spend) + int(res))
db_curs.execute("UPDATE `" + db_name + "` (cID, first_name, last_name, date_of_birth, spend) VALUES ('" + srce + "', '" + first_name + "', '" + last_name + "', '" + dob + "' WHERE '" + spend + "')")
db_connection.commit()

有人可以解释一下这个命令的正确语法吗?如果我可以更新“支出”列而不是从前缀变量更新它们,那将是非常棒的。 谢谢:))

1 个答案:

答案 0 :(得分:0)

这应该有效:

db_curs.execute("UPDATE database SET spend =`" + spend + "` WHERE cID="+ cID)

另见SQL Update Syntax

顺便说一句,“数据库”不是数据库表的有用名称。那些“用户”或“消费时间”或更具描述性的内容呢?