gpt4 book ai didi

mysql - 更新 mysql 时出现重复错误

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:09 24 4
gpt4 key购买 nike

我有一个包含多行的表格。有些字段 request_path 包含 .html.html 等字符,而其他字段则包含不同的字符。我想删除所有 .html.html 并使它们成为单个 .html。我正在尝试以下命令 -

UPDATE url_rewrite 
SET request_path = CONCAT(LEFT(request_path, CHAR_LENGTH(request_path) -10), '.html')
WHERE request_path LIKE '%.html.html';

但它给出了以下错误 -

#1062 - Duplicate entry 'test/test.html-1' for key 'URL_REWRITE_REQUEST_PATH_STORE_ID'

如果我删除了这个条目,它就会开始对其他一些值给出同样的错误。我无法超越这个错误。任何人都可以帮助解决这个问题吗?

表的结构是这样的-

enter image description here

最佳答案

我认为您在 request_path 列中设置了唯一键约束尝试使用此查询删除此约束,然后执行以下替换查询。

ALTER TABLE url_rewrite DROP INDEX URL_REWRITE_REQUEST_PATH_STORE_ID;

然后,

UPDATE url_rewrite
SET request_path = REPLACE(request_path, '.html.html', '.html')

这会将所有 '.html.html' 替换为单个 '.html' 如果您愿意,您也可以在此处使用 where 条件.

然后再次使用以下查询重新分配约束:

ALTER TABLE url_rewrite add unique index URL_REWRITE_REQUEST_PATH_STORE_ID (request_path (255))

关于mysql - 更新 mysql 时出现重复错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51282533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com