【发布时间】:2017-06-09 12:13:00
【问题描述】:
我做了一个wordpress插件来查找和替换数据库中的关键字,其中管理员提供关键字来查找和替换,然后MYSQL查询在数据库中进行更改。
但我只想知道如何避免重复的蛞蝓。
例如:
好像有两个帖子带有以下标签:
- 第一次发帖
- 第二帖
然后管理员运行查询并希望将“second”替换为“first”。 那么结果将是:
update wp_posts set `post_name` = replace(post_name, 'second','first') where post_type='post'
- 第一次发帖
- 第一次发帖
有没有办法让蛞蝓保持独特?
【问题讨论】:
-
到目前为止,最简单的解决方案是添加 unique constraint to the database column 并在发现重复项时捕获引发的错误。
-
作为@sjdaws 的补充:当唯一约束存在重复条目时,如果我没记错
1062,您将得到一个特定的错误代码。将查询放在try-catch块中,然后在 catch 中检查错误代码是否等于 1062。 -
在我看来这是一个混乱的解决方案,它并没有真正实现所要求的 - 即找到一种方法来启用关键字交换并保持 slug 中的唯一性。请参阅下面的解决方案。