2010-08-30 73 views
2

爲了防止數據庫中出現重複的表項,我使用主鍵。我只是添加信息,如果它是重複的,那麼主要將是重複的,它不會添加到表中。防止重複的數據庫表條目

我還應該做一個SQL查詢(在嘗試添加到數據庫之前)以查看條目是否存在?或者這是多餘的,因爲我已經有主鍵集?

回答

5

如果您已經有一個約束來防止重複,檢查值的存在是多餘的。

但是在插入之前檢查也是無效的,因爲其他併發客戶端可能會在檢查和插入之間插入該值。所以即使你先檢查,你仍然需要處理重複的重要錯誤。

0

對於大多數數據庫平臺,當您創建主鍵時,如果有重複條目,操作將失敗,因此應該無需事先對其進行測試。

0

通常你會從調用SQL引擎中得到異常或錯誤代碼。如果你需要處理這個問題取決於你的應用邏輯。例如,如果它是一個新的用戶名,並且它已經存在於數據庫中,那麼異常是您應用程序邏輯的一部分,您將向新用戶提供有關爲什麼註冊失敗的消息。

1

定義「唯一約束條件」與表中所需的列將修復一切。如果有重複,你會得到錯誤。