2013-11-25 22 views
0

好的,我有一個表MW鑑於獨特(col1,col2),那麼我們如何更新col2以避免重複的錯誤?

 
M - O - N 
1 - 1 - 5 
1 - 2 - 7 
1 - 3 - 8 
1 - 4 - 9 

主鍵(M,N)

唯一鍵(M,O)

實際上O列是N對M中的順序號,所以我要重新排序,以使該表是這樣的:

 
M - O - N 
1 - 3 - 5 
1 - 1 - 7 
1 - 4 - 8 
1 - 2 - 9 

在第1臺N的orderNo爲1 &現在我想它3 &等。

在Java中,我可以一次運行更新1行,

Update MN set O=3 where M=1 and N=5 

然而,這個查詢會得到錯誤,因爲MO是獨一無二的,因爲O = 3仍存在,那麼我們就不能設置對於N = 5,O = 3,除非我們刪除了N = 8。

那麼,如何在Java和/或Mysql中解決這個問題呢?

+0

在mysql中刪除'M-O'唯一約束並執行'update'查詢。 –

+0

在這種情況下,您應該在原始(* first)輸出中應用更新,其中'O'爲'3'。 '更新MN集O = 4,其中M = 1和N = 9' –

+0

但當時O = 3直到存在 – Tum

回答

-1

或者放下約束並稍後放回,或將數據放入臨時表中,然後將其移回。在維持約束的同時,無法逐行進行此操作。

相關問題