2011-02-08 5 views
2

ファイルを読み込んでデータベースにデータを挿入するプログラムがあります。私はそのプログラムのためのテストハーネスをPythonで書いています。 pythonハーネスは、テストデータを生成する前にいくつかの設定パラメータを取得するためにデータベースに接続します。その後、テスト対象のプログラムがファイルを処理してデータベースを変更できるようにするため、10秒間待機します。遅れてデータベースから値を読み取ろうとすると、それらは存在しません。私が2番目のターミナルを開き、コマンドラインでチェックすると、そこには存在しません。 Pythonテストハーネスを終了すると、データがデータベースに挿入されます。 MySQLdbがテーブルをロックしていると思われるので、データを挿入することができません。どのように私はPython MySQLdbはテーブルロックを解除しません

TLテーブル上のロックを解除するのMySQLdb作るのですか、DR 私のワークフローでは、上記の私の他のプログラムが

あなたが必要

答えて

3

が挿入されているはずのデータをチェックするには、この

connection = MySQLdb.connect(host="localhost") 
cursor = connection.cursor() 
cursor.execute(".....") 
cursor.close() 
connection.commit() 
connection.close() 
cursor = None 
connection = None 

sleep(10) 

繰り返しのように見えますconnection.commit()の前にcursor.close()を実行します。

MySQLは実際にはカーソルをサポートしていないことに注意してください。Pythonラッパーはそれらをエミュレートします。これにより、この例のような予期しない方法でコードが動作しなくなる可能性があります。

関連する問題