我有一個帶有displayName列的表,我添加了一個「唯一」約束。我試圖編寫一個遷移,將任何非唯一的displayName設置爲null,只保留具有較低用戶ID的displayName。這裏是我的查詢:在添加唯一約束的列中刪除重複的值
UPDATE "User" SET "displayName" = NULL
WHERE id IN (SELECT id,
FROM (SELECT id,
ROW_NUMBER() OVER (partition BY "displayName" ORDER BY id) AS rnum
FROM "User") t
WHERE t.rnum > 1);
當我試圖運行遷移我回來了「錯誤:語法錯誤在或接近」FROM「」。
感謝
用您正在使用的數據庫標記您的問題。此外,樣本數據和期望的結果將有助於傳達您正在使用的內容。 –
','在子查詢中的id後面。 –