0

次の更新が正常に実行されたかどうかを確認するにはどうすればよいですか。現在、ステートメントは実行されていますが、テーブルにはそれが反映されていません。

cursor = mysql.cursor()
cursor.execute("""UPDATE foo SET key1 = %s  WHERE id = %s""", (val1, id2))
4

3 に答える 3

1

私の知る限り、あなたは電話する必要があります

mysql.commit()

変更を有効にします。

これにより、データベース操作 (複数可能) が1 つのトランザクションで実行されるようになります。何か問題が発生した場合は、変更全体を元に戻すことができます。

1 つのトランザクションで、新しい人物を追加し、その人物への参照を別のテーブルに設定するなど、関連するものをまとめます。

このページの挿入操作の章も参照してください (rollback例外が発生した場合に使用する場所): http://www.tutorialspoint.com/python/python_database_access.htm

于 2013-01-24T08:03:15.333 に答える
0

Source Forge のドキュメント ( http://mysql-python.sourceforge.net/MySQLdb.html ) を参照できます。

まず、あなたが言及したように、このカーソルで接続、カーソル、およびクエリの実行を行います。これはドキュメントの例です:

import MySQLdb
db=MySQLdb.connect(passwd="moonpie",db="thangs")
c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""", (max_price,))

次に、次を使用して結果をフェッチします。

c.fetchone()

結果は単一のタプルとして返されます。結果にさらに行が含まれる場合は、

c.fetchall()

また

c.fetchmany()
于 2013-01-24T09:00:25.350 に答える
0

commit自動コミットがデフォルトで無効になっている場合は、ステートメントを明示的に実行する必要があります。

SET autocommit = 1自動コミットを有効にし、すべてのステートメントが実行時にコミットされます。このリンクを参照してください

于 2013-01-24T09:22:08.377 に答える