MYSQL,错误 1062

MYSQL, Error 1062

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

使用 SHOW CREATE TABLE roof_panel_width; 返回了相关 table 的 CREATE 代码。

CREATE TABLE `roof_panel_width` (
    `rpw_id` int(11) NOT NULL AUTO_INCREMENT,
    `width_in_inches` decimal(2,1) NOT NULL,
    PRIMARY KEY (`rpw_id`),
    UNIQUE KEY `width_in_inches` (`width_in_inches`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=latin1'

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

INSERT INTO `roof_panel_width` (`width_in_inches`)
VALUES (14),(16),(18),(24),(29.5),(36);

返回的完整错误是

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

我不想插入值 9.9,table 将只包含上述值。目前它是空的。我还尝试删除 table 并创建新的。错误代码没有变化。任何帮助将不胜感激。

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

如果你把小数列改成(3, 1),那么你可以上到99.9

DECIMAL(2,1) 更改为 DECIMAL(3,1) 以保持列 width_in_inches 的值高达 99.9。为了保持更高的值,您需要相应地调整精度和比例:

DECIMAL(precision, scale)