2012-12-16 102 views
0

我有一個MySQL數據庫和我有三個表:多個實例 - >

 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,我們從設置[çontentid]中獲取它。每次嘗試後,都會遞增contentId和curId,以便我知道它最後失敗/停止/完成的位置。現在我想運行腳本的兩個實例。他們兩個都從設置[curId]中獲取id並在完成後遞增。

我的問題是:如果我讓他們在沒有使用任何鎖的情況下運行,它會在某個時刻從另一個「DB」中獲取同一個對象,並在content1中創建一個副本。

+0

我只看到2個表格。 – Theolodis

回答

0

我不確定它是否會發生,但可能發生。 爲什麼你不讓他們從不同的值開始到一定的限制?這樣你甚至不需要第一張桌子。

+0

我剛剛添加了第三張表,我忘記了這一點,但contentId與curId的問題相同。 –

+0

是的,你會有同樣的問題。最乾淨的將是同步你的訪問數據庫。 – Theolodis

+0

因此,每次訪問設置表後,我都應該鎖定並解鎖。我正在考慮RW鎖或將讀取鎖只是做? –