我正在處理用戶表並將userName字段更改爲userName ||'test'不幸的是,在這個方法的某個地方,已經有轉換的userNames等於這個已經。由於userName具有唯一的約束,我需要一種方法來更新這些字段,除非它們會導致重複。我一直在網上尋找幫助,到目前爲止只發現了一個通用的「讓你的更新不會導致重複」,沒有更多的關於如何與oracle做到這一點。oracle sql-update除非更新將重複在唯一
表: 主要VARCHAR獨特VARCHAR USER_ID名username
需要更新所有的用戶名至USERNAME =用戶名|| 'test',除非userName ||'test'已經存在。
有什麼建議嗎?
如果'userName ||'test''已經存在,你會怎麼做 - 使用不同的模式,或者保留原來的'userName'?你看過'不存在'測試嗎? – 2014-10-02 16:08:32
如果userName ||'test'已經存在,它應該將其更改爲userName ||'duplicate',這樣我就可以返回並在清理前手動檢查。 – lessawarren 2014-10-02 19:44:32
如果你要手動清理,那麼你可以使用guildbounty的答案;然後運行後,查找'用戶名不像'%test''而不是'like'%duplicate''的地方。 – 2014-10-02 19:47:57