我有這些表:併發核心價值表
CO_KEYVALUE
:
co_keyvalueid int
co_keyid int
value text
CO_KEY
:
co_keyid int
keyname varchar(128)
的問題是:如何有效地控制現場鍵名是在獨特應用層?
例如:
客戶端1個插入物( 「姓名」, 「客戶端1」)
與此同時,客戶機2個插入物( 「姓名」, 「客戶端1」)
Function Put(Name, Value) {
Id = SELECT co_keyid FROM co_key WHERE co_keyname = :Name
If(!Id) {
// Autoincrement
Id = INSERT INTO co_key (NULL, :Name)
}
INSERT INTO co_keyvalue (NULL, :id, :Value)
}
我知道我可以鎖定所有的表格,但還有其他方法嗎?
哪個數據庫?如果你將它們定義爲UNIQUE,DB應該處理這個。 – SriniV