»

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

    WordPress  
腾讯云加速windows主机伪静态查询百度云加速SEOCDN的问题网站优化CDNcookies工作Wp Super Cachehtaccess建站web.configWP Rocket访客网站镜像IIS浏览器WordPress插件插件Apache访问缓存

最近发现删除 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字。除非特别标注来源,否则为原创。详见《版权声明》部分。
  • 转载请注明:文章标题和文章链接 - 时光在路上 - 也可直接“复制本文链接” 或 使用右边二维码分享本文 →