我在Postgres中有一张表,里面充满了文章。这些文章都有一个与之相关的url slug,用于将它们显示为
可惜的是,当我刚开始时,在urls上实施了唯一约束,但忽略了不区分大小写的情况,并且我希望能够纠正这个错误,并开始要求urls无论大小写都是唯一的。
作为第一步,我需要修复数据库中已存在的所有重复urls。如何在不区分大小写的情况下搜索该表以查找具有重复urls的行,并将其中的一行保持不变,同时在其余重复项的末尾添加类似“_2”的内容?
特别棘手的是,我不能百分之百确定是否存在多次重复的urls。 也就是说,我可能会有一个url的3个副本,如果是这种情况,我希望第一个是
example.com/pretty_name
而不是example.com\2343
。可惜的是,当我刚开始时,在urls上实施了唯一约束,但忽略了不区分大小写的情况,并且我希望能够纠正这个错误,并开始要求urls无论大小写都是唯一的。
作为第一步,我需要修复数据库中已存在的所有重复urls。如何在不区分大小写的情况下搜索该表以查找具有重复urls的行,并将其中的一行保持不变,同时在其余重复项的末尾添加类似“_2”的内容?
特别棘手的是,我不能百分之百确定是否存在多次重复的urls。 也就是说,我可能会有一个url的3个副本,如果是这种情况,我希望第一个是
pretty_name
,第二个是pretty_name_2
,第三个是pretty_name_3
。