【发布时间】:2011-03-23 12:07:08
【问题描述】:
我在 Postgres 中有一张桌子,里面塞满了文章。这些文章有一个与之关联的 url slug,用于将它们显示为 example.com/pretty_name 而不是 example.com\2343。
不幸的是,当我刚开始时,我对 url 实施了唯一约束,但忽略了不区分大小写的情况,我想纠正这个错误并开始要求 url 是唯一的,不考虑大小写。
作为第一步,我需要修复数据库中已经存在的所有重复 url。 如何在不区分大小写的情况下在表格中搜索具有重复 url 的行,并保留一行,而对于其余重复行,在末尾附加“_2”之类的内容? p>
这特别棘手,因为我不能 100% 确定网址不会重复超过一次。即,我可能在一个 url 上有 3 个重复项,在这种情况下,理想情况下,我希望第一个是 pretty_name,第二个是 pretty_name_2,第三个是 pretty_name_3。
【问题讨论】:
-
有一些架构是提供高质量答案所必需的。
-
架构非常简单。有一个表格文章,它有一个列 url。您还有什么想知道的相关信息吗?
-
大声笑,在你最后一个问题之后,我有一半预料到这个问题 - 你的文章表上有一个 id 列吗?
标签: postgresql duplicates unique