MySQL 错误 #167 - 列的值超出范围,即使它是自动递增的

MySQL error #167 - Out of range value for column even when it is autoincremented

我有一个字段(称为 ID)定义为:

smallint(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=32768

我有如下查询(简化):

INSERT INTO delivery (`ConsigneeName`, `ConsigneePhone`) VALUES ('John Doe', '9999999999')

也尝试过

INSERT INTO delivery (`ID`, `ConsigneeName`, `ConsigneePhone`) VALUES (NULL, 'John Doe', '9999999999')

但是,我一直收到错误消息:

#167 - Out of range value for column 'ID' at row 1

那可能是什么问题呢?我束手无策 - 尝试在字段名称和值上使用 ' 和 ` 只是为了看看这是否是问题所在,但我得到了相同的结果。我什至尝试了 phpmyadmin 界面来插入值(并将 ID 留空),但我得到了同样的错误。

在此先感谢您的帮助。

您的自动增量开始于 smallint 日期类型的范围之外。所以你不能添加任何条目。 将此列的数据类型更改为 int。

参见the mysql documentation关于数据类型范围

SMALLINT -32768 32767