1

Python 用の MySQLdb モジュールを使用して簡単なクエリを作成しています。特定の UPDATE を実行すると、しばらくハングし、最終的に次のエラーが発生します。

操作エラー (1205 'ロック待機タイムアウトを超えました' トランザクションを再起動してください)

私が使用しているコードは次のとおりです。

def unselectAll():
    try:
        db = MySQLdb.connect(host='localhost', user='user', passwd='', db='mydatabase')
        cursor = db.cursor()
        cursor.execute('UPDATE MYTABLE SET Selected=0')
    except MySQLdb.Error, e:
        print 'ERROR ' + e.args[0] + ': ' + e.args[1]

そのクエリをコンソールで使用しようとすると、完全に機能します。また、db パラメータを使用せずに接続し、クエリで mydatabase.MYTABLE を使用しても機能しません。

何か助けはありますか?

4

1 に答える 1

1

これは、UPDATEがコミットされていないことが原因である可能性があります。接続を試みautocommit=Trueましたか? のように

db = MySQLdb.connect(host='localhost', user='user', passwd='', db='mydatabase', autocommit=True)

または多分

db.autocommit(True)

接続を作成した後。

于 2013-01-29T11:53:46.590 に答える