我有兩個表(我們稱它們爲OriginalTable
和NewValuesTable
)和幾列。我將僅討論有關專欄的問題。使用新值更新表中的一行,同時避開主鍵約束
托盤ID - 的OriginalTable
OriginalTable
主鍵大約有35000項,其中PalletID
值是錯誤的。我的NewValuesTable
有正確的PalletID
值。這是我的問題:
- 讓我們的
OriginalTable
- 這些數值都是錯誤的。這些需要用
NewValuesTable
的新值替換。就像這樣:
- 我不知道這個問題是顯而易見的,但讓我解釋一下。突出顯示的字段是問題。當我將
21
更新爲22
時,會出現PrimaryKey Constraint
相關錯誤,因爲它是重複密鑰。同樣與34
和68
。我該如何解決這個問題?
這是我的想法:也許編輯有Duplicate Key
例外的值,如W**
。例如,NewValue
表中的22
表變爲W22
,34
變成W34
。添加一個W
或類似的東西。然後用這些值更新表格。然後更新OriginalTable
的PalletID
字段以刪除W
。
這似乎是一個聰明的方式去做這件事嗎?有一個更好的方法嗎?
您是否一次更新一行?兩個表的行數是否相同?即使一張桌子需要更新,它們是否都正確訂購? – TDP
我使用'update'和'join'更新近35,000行。他們點了,是的。但是'PalletID'字段的值不像問題中那麼簡單。一個典型的'PalletID'看起來像'H2333431'。 「NewValues」表有35,000行,因爲那些是需要改變的。 'OriginalTable'有超過100,000行,但只有35,000行錯誤的'PalletID'存在問題。 –
如果您一次更新所有行,則不應該有任何問題。 –