默认为‘0’主键的新帖子

时间:2014-10-13 作者:tableconfig

尝试创建新博客帖子时,Wordpress显示数据库错误:

 WordPress database error Duplicate entry \'0\' for key \'PRIMARY\' for query INSERT INTO `wp_posts` (`post_author`,`post_date`,`post_date_gmt`,`post_content`,`post_content_filtered`,`post_title`,`post_excerpt`,`post_status`,`post_type`,`comment_status`,`ping_status`,`post_password`,`post_name`,`to_ping`,`pinged`,`post_modified`,`post_modified_gmt`,`post_parent`,`menu_order`,`post_mime_type`,`guid`) VALUES (5,\'2014-10-13 11:19:21\',\'0000-00-00 00:00:00\',\'\',\'\',\'Auto Draft\',\'\',\'auto-draft\',\'post\',\'open\',\'open\',\'\',\'\',\'\',\'\',\'2014-10-13 11:19:21\',\'0000-00-00 00:00:00\',0,0,\'\',\'\') made by get_default_post_to_edit, wp_insert_post PHP Warning: Creating default object from empty value in C:\\..\\..\\..\\httpdocs\\wp-admin\\includes\\post.php on line 567
我可以编辑过去的帖子,但在尝试创建新帖子时会出现问题。

关于防止新帖子默认为0 作为Primary Key?

Wordpress V4。0菲律宾比索5.4

2 个回复
最合适的回答,由SO网友:Radley Sustaire 整理而成

这只是我最好的猜测。根据提供的信息,我看不到确切的答案。

的主键wp_posts 应设置为ID. 主键给出错误。自从ID 查询中未定义,很可能AUTO_INCREMENT 值已设置为0,或不再递增。

我会查看您的数据库并找到AUTO\\u增量值。我打赌出于某种原因它被设置为0。

Take a backup of your database before making any changes to the database.

如果AUTO\\u INCREMENT值设置为0,则需要将其设置为尚未达到的值。转到wp\\U帖子并找到最高值ID 并将其设置为多出一个(或多出几个,只是为了安全)。

例如,如果wp\\U POST中的最高值ID为1000:

ALTER TABLE wp_posts AUTO_INCREMENT = 1001;
如果不是这个问题,请确保表的主键设置为ID.

SO网友:Ramon Fincken

我为此写了一个更新。

我使用内置的WP核心模式来确保所有WP核心表都存在(即使在将来发布6.0或更高版本时)。它将删除损坏的行并重新添加键和主键。这里可以看到脚本(以及更多说明):https://wpindexfixer.tools.managedwphosting.nl/

也无需猜测自动增量值。

这是一个免费的脚本。

结束

相关推荐

Backup blog posts only

我有一个Wordpress网站,有很多页面和博客帖子。我想创建一个新网站,但保留所有博客帖子,只有博客帖子,没有页面。我怎样才能做到这一点?当我从mysql备份数据库时,所有内容都会传递到新站点,但我只想备份博客帖子。WordPress Backups