0

MySQL データベースがあり、次の 3 つのテーブルがあります。

     settings
Name     |   Value
curId    |    127 
contentId|    34


content1
Id   |   Name
5    |   XXX
34   |   YYY

content2
Id   |   Name
12   |   XXX
33   |   YYY

私が持っているスクリプトは、設定テーブルの curId を使用して別の「DB」からデータを取得し、それが他の「DB」に存在する場合は content1 テーブルに追加し、そうでない場合は content2 テーブルに追加します。どちらも同じ ID を共有しており、設定 [contentid] から取得します。試行ごとに contentId と curId がインクリメントされるため、最後にどこで失敗/停止/終了したかがわかります。ここで、スクリプトの 2 つのインスタンスを実行します。どちらも設定[curId]からIDを取得し、完了後に増分します。

私の質問は次のとおりです。ロックを使用せずにそれらを実行すると、ある時点で他の「DB」から同じオブジェクトを取得し、content1 で複製を作成することになります。

4

1 に答える 1

0

それが起こるかどうかはわかりませんが、起こる可能性があります。さまざまな値から特定の制限まで開始させてみませんか? そうすれば、最初のテーブルさえ必要ありません。

于 2012-12-16T20:55:46.150 に答える