首页 > 解决方案 > MYSQL,错误 1062

问题描述

我在将值插入表时遇到问题。我收到Error Code: 1062错误消息。

使用有问题的表SHOW CREATE TABLE roof_panel_width;CREATE代码被返回。

创建表`roof_panel_width`(
    `rpw_id` int(11) NOT NULL AUTO_INCREMENT,
    `width_in_inches` 十进制(2,1)不为空,
    主键(`rpw_id`),
    唯一键`width_in_inches`(`width_in_inches`)
) 引擎=InnoDB AUTO_INCREMENT=30 默认字符集=latin1'

使用以下代码时返回错误代码。

插入到`roof_panel_width`(`width_in_inches`)
值 (14),(16),(18),(24),(29.5),(36);

返回的完整错误是

Error Code: 1062. Duplicate entry '9.9' for key 'width_in_inches'

我不尝试插入值 9.9,并且该表将仅包含上述值。此刻是空的。我也尝试过删除表并创建新表。错误代码没有变化。任何帮助,将不胜感激。

标签: mysqlunique-keymysql-error-1062

解决方案


问题是,通过将列设置为 DECIMAL(2,1),您最多允许该数字包含 2 个部分,因此 1 表示整体,1 表示小数。当您尝试插入 14 和 16 时,它会将其更改为两者的最大值 9.9,并导致重复。

如果将小数列更改为 (3, 1),则可以上至 99.9


推荐阅读