»

删除WordPress评论时出现Duplicate entry “0” for key “PRIMARY” 错误

    WordPress  
WordPress插件WP Rocket伪静态Apachewordpress插件建站腾讯云加速网络安全重定向防盗链网站镜像数据库百度云加速前端windows主机身份认证cookies工作网站优化CLBIIS访客缓存浏览器

最近发现删除 WordPress 评论到回收站时,会报错,提示数据库错误 Duplicate entry “0” for key “PRIMARY”类似于如下形式:

WordPress 数据库查询 INSERT INTO `wp_commentmeta` (`comment_id`, `meta_key`, `meta_value`) VALUES (` 1021` , ` _wp_trash_meta_status` ,` 0` ) 时发生 Duplicate entry ` 0`  for key ` PRIMARY` 错误,这是由 do_action('wp_ajax_delete-comment'), WP_Hook->do_action, WP_Hook->apply_filters, wp_ajax_delete_comment, wp_trash_comment, add_comment_meta, add_metadata 查询的

 

上述错误的出现主要原因是,向 wp_commentmeta 表中插入数据时,主键设置不能为空,因此默认是以“0”来进行填充的。因此在数据插入时主键 id (本例中为 meta_id )值被 0 占据,如下图所示:

meta-id-0

 

但由于之前已经有数据了,id 为“0”的索引已经被占,再使用就会报这个错误,

因此只需要在数据库中把表 wp_commentmeta 中的主键meta_id设置成 自动递增(auto-increment)属性即可,设置如下:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

打开表wp_commentmeta,选择页面上面的“结构”(STRUCTURE)标签选项,可以看到类似于如下的情形:

meta-id-change

打开表 wp_commentmeta

 

meta_id默认有个钥匙的标记,表示为主键。点击右面的“修改”,然后在打开的页面勾选右上角的 “A_I”(AUTO_INCREMENT)复选框:

本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利

check-auto_increment

勾选 AUTO_INCREMENT

点击“保存”。

完成上述操作后,再删除评论到回收站就不会报错了。

时光在路上扫码阅读、分享
  • 版权声明:该文章由 时光在路上 发表,共 928字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →