【发布时间】:2017-06-12 12:52:26
【问题描述】:
我有两张桌子:
User:(int id, varchar unique username)
Items: (int id, varchar name, int user_id)
目前,用户表中存在不区分大小写的重复项,例如:
1,John
2,john
3,sally
4,saLlY
然后 Items 表就会有
1,myitem,1
2,mynewitem,2
3,my-item,3
4,mynew-item,4
我已经更新了插入用户表的代码,以确保它始终插入小写。
但是,我需要迁移数据库,以便从用户表中删除重复项,并更新项目表引用,以便用户不会失去对其项目的访问权限
I.E迁移后的数据为:
用户:
1,john
3,sally
项目
1,myitem,1
2,mynewitem,1
3,my-item,3
4,mynew-item,3
由于用户表有一个唯一的约束,我不能把它设置为较低的像
update public.user set username =lower(username)
【问题讨论】:
-
我正在使用 H2 数据库
-
首先更新项目,使它们都指向用户的正确版本,然后删除不需要的用户。
-
我可以用 Java 或其他编程语言做到这一点,我想知道是否可以纯粹使用 SQL 来做到这一点
-
添加按用户名分区的行号然后删除其中行号> 1。msdn.microsoft.com/en-us/library/ms186734.aspx 然后stackoverflow.com/questions/2334712/…