【发布时间】:2014-10-03 04:09:59
【问题描述】:
我正在使用用户表并将用户名字段更改为用户名||'test' 不幸的是,在此过程中,已经有转换后的用户名与此相同。由于 userName 有一个唯一的约束,我需要一种方法来更新这些字段,除非它们会导致重复。我一直在网上到处寻找帮助,到目前为止只找到了一个通用的“使您的更新不会导致重复”,而没有更多关于如何使用 oracle 来做到这一点。
表: 主 varchar 唯一 varchar user_id 名称用户名
需要将所有用户名更新为 userName = userName || 'test' 除非用户名||'test' 已经存在。
有什么建议吗?
【问题讨论】:
-
如果
userName||'test'已经存在,你会怎么做 - 使用不同的模式,还是保留userName原样?你看过not exists测试吗? -
如果 userName||'test' 已经存在,它应该将其更改为 userName||'duplicate',这样我就可以在清理之前返回并手动检查。
-
如果您还是要手动清理,那么您不妨使用 guildbounty 的答案;然后在运行后,寻找
username not like '%test'而不是like '%duplicate'的任何地方。
标签: sql sql-update duplicates oracle-sqldeveloper