【发布时间】:2021-04-11 14:30:42
【问题描述】:
我的日志中偶尔会出现此错误:
WordPress database error Duplicate entry '0' for key 'order_items.id' for query INSERT INTO `order_items` (`client_id`...
如果我查看 phpMyAdmin 中的表格,ID 字段上的 AUTO_INCREMENT 设置已取消设置。所以我重新打开它,但几天后它会再次发生(在同一张桌子上多次成功操作之后)。
这也发生在其他表上。这可能是什么原因造成的?
---编辑---
我唯一能想到的是创建表的插件会时不时地重新启动。代码如下:
$sql = "CREATE TABLE `product_feeds` (
`id` mediumint(9) NOT NULL,
`client_id` tinytext COLLATE utf8mb4_unicode_520_ci NOT NULL,
`feed_type` int(11) NOT NULL DEFAULT '1'
`last_updated` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;";
dbDelta( $sql );
$sql = "ALTER TABLE `product_feeds` ADD PRIMARY KEY `id` (`id`);";
dbDelta( $sql );
$sql = "ALTER TABLE `product_feeds` MODIFY `id` mediumint(9) NOT NULL AUTO_INCREMENT;";
dbDelta( $sql );
最后一行是添加 AUTO_INCREMENT 的行。这是正确的陈述顺序吗?
【问题讨论】:
-
该字段的数据类型是什么?
-
@AkhileshBChandran mediumint
-
设置/取消设置是什么意思? AUTO_INCREMENT 从列定义中消失了?
-
@ysth 这是正确的
-
这不只是发生。你正在运行的东西正在改变表或创建新表。
标签: mysql wordpress phpmyadmin