最近发现删除 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 占据,如下图所示:
但由于之前已经有数据了,id 为“0”的索引已经被占,再使用就会报这个错误,
因此只需要在数据库中把表 wp_commentmeta
中的主键meta_id
设置成 自动递增(auto-increment)属性即可,设置如下:
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
打开表wp_commentmeta
,选择页面上面的“结构”(STRUCTURE)标签选项,可以看到类似于如下的情形:
meta_id
默认有个钥匙的标记,表示为主键。点击右面的“修改”,然后在打开的页面勾选右上角的 “A_I”(AUTO_INCREMENT)复选框:
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利
点击“保存”。
完成上述操作后,再删除评论到回收站就不会报错了。