私は.. FOR UPDATE MySQLのSELECTの問題を抱えています、ここで私が実行しようとしていますクエリです。この後MYSQL SELECT ... FOR UPDATE動作していませんか?
SQL = "SELECT * " +
"FROM " + TableName + " " +
"WHERE out_status IN ("+outSStatus+") AND queued <= NOW() " +
"ORDER BY out_status, id_queue ASC "+ limitSql+
"FOR UPDATE";
は、その後である99にout_statusをUPDATEを行うと、変更されたスレッド、行をロック解除する必要があります。
私はマルチスレッドのJavaアプリケーションを実行しているので、3つのスレッドがこのSQL文を実行していますが、スレッド1がこれを実行すると、スレッド2の結果をロックしません(隠す)。& 3.スレッド2 & 3は同じ結果を得ています。
また、各スレッドは独自のmysql接続にあります。
誰でもこの手伝いできますか?または、おそらくより良い解決策がありますか?
非常に感謝しています。
私はauto-commit = off ...と設定しましたが、上記ではまだトランザクションを使用する必要がありますか?例:BEGINとCOMMIT – James
@James:そうだが、少なくとも動作し始めた。あなたはVikashの答えを受け入れることができます。 –