1

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()

誰かがこのコマンドの正しい構文を説明してもらえますか?接頭辞付きの変数からすべてを更新するよりも、「支出」列を更新できれば素晴らしいと思います。ありがとうございました :)

4

1 に答える 1

0

これは機能します:

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

SQL更新構文も参照してください。

ところで、「データベース」はデータベースのテーブルの有用な名前ではありません。「ユーザー」や「支出時間」など、よりわかりやすいものはどうでしょうか。

于 2012-05-05T14:54:18.777 に答える