我想以此來改變每一行的一個表中的id
(主鍵,AUTO_INCREMENT):如何按特定順序更新MySQL行?
UPDATE foo SET id = id + 4;
但它給我:
Duplicate row for primary key value 5
或者一些沿該線。
我該如何解決這個問題?是否有查詢以更新的順序排列的行,所以這不會發生?
謝謝。
我想以此來改變每一行的一個表中的id
(主鍵,AUTO_INCREMENT):如何按特定順序更新MySQL行?
UPDATE foo SET id = id + 4;
但它給我:
Duplicate row for primary key value 5
或者一些沿該線。
我該如何解決這個問題?是否有查詢以更新的順序排列的行,所以這不會發生?
謝謝。
這是在單個SQL語句中執行此操作的解決方案。
UPDATE foo F
INNER JOIN (SELECT id FROM foo ORDER BY id DESC) F2
ON F.id = F2.id
SET F.id = F.id + 4
您可以添加額外的column id2
,設置column id2
value=id+4
,然後設置id=id2
。
UPDATE:或者您可以嘗試切換檢查限制OFF
,做你的更新並切換它ON
。
這應該是答案。 – Dynelight
@Dynelight如果你這麼說。 – think123