我編寫了一個小程序,對數據庫中的一些ID進行了重新排序,以保持易維護性,並且不需要編輯其他程序。它工作得很好,但我遇到了問題。基本上我現在正在更新像這樣的行;更新數千行不同的值
UPDATE data SET id = 100 WHERE id = 2000; UPDATE data SET id = 101 WHERE id = 2001; UPDATE data SET id = 102 WHERE id = 2002; ...
這一個工作得很好,但不是在所有情況下;
UPDATE data SET id = 100 WHERE id = 2000;
UPDATE data SET id = 2001 WHERE id = 100; -- Conflight, now the last row got updated again with wrong id
該值需要跨指定ID和值的多個表進行更新!有沒有簡單的方法來運行更新查詢「一次全部」,這樣數據庫不會與已更新的id發生衝突?
是的,ID確實是主鍵 – user7729575
有人插入意外ID爲20億,我們的表即將使整數溢出需要我們重新排序 – user7729575