唯一約束條件 - 這些列當前沒有唯一值。唯一約束 - 這些列當前沒有唯一值..?
我創建了3列的唯一約束;
我的代碼完美,但一次 - 兩個用戶@同時輸入相同的數據,並以某種方式保存在數據庫中;該事件發生後
這的UniqueConstraint給我的錯誤 - 這些列當前沒有唯一值
我如何檢查用戶輸入這樣的條目或我怎麼能限制的ENTRY ???
唯一約束條件 - 這些列當前沒有唯一值。唯一約束 - 這些列當前沒有唯一值..?
我創建了3列的唯一約束;
我的代碼完美,但一次 - 兩個用戶@同時輸入相同的數據,並以某種方式保存在數據庫中;該事件發生後
這的UniqueConstraint給我的錯誤 - 這些列當前沒有唯一值
我如何檢查用戶輸入這樣的條目或我怎麼能限制的ENTRY ???
我想你正在使用SQL Server,在這種情況下,如果已經定義了約束,以便在插入時檢查約束。根據到SQL Server documentation,你描述不能發生的事情:
數據庫引擎會自動 創建唯一索引來強制UNIQUE 約束的 唯一性要求。因此,如果嘗試執行 來插入重複行,則 數據庫引擎會返回錯誤 消息,指出違反了UNIQUE 約束條件,並且 不會將該行添加到表中。
即使插入發生(幾乎)同時發生,請求也會在數據庫中排隊,以便其中一個請求在檢測到約束被違反時會失敗。
正如Rob P所說,看起來好像是在DB層之外創建約束。
您能否提供關於約束條件的更多細節以及如何執行它們?
(我以爲)任何現代DBMS都應該能夠同時處理併發/多個用戶同時沒有約束問題。我的猜測是您正在使用ADO.NET DataSet/DataTable並自己添加約束。
如果是這樣的話,我認爲最簡單/最好的做法是將約束添加到數據庫中。如果兩個用戶同時更新/保存,數據庫將正確處理;一個會成功保存數據,另一個會收到錯誤。您可以優雅地處理應用程序中的錯誤。
你在哪裏描述了你的約束?你正在使用哪個數據庫? – davek 2011-05-08 17:34:59
使用MS SQl服務器2005並使用.net框架的UniqueContraint – pvaju896 2011-05-09 15:36:41
我已通過VB.Net編碼給出了此約束 – pvaju896 2011-05-09 15:38:22