MYSQL,错误1062

时间:2018-06-18 16:23:23

标签: mysql unique-key mysql-error-1062

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

使用SHOW CREATE TABLE roof_panel_width;返回了相关表格的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,表格只包含上述值。目前是空的。我也试过放下桌子并创造新的。错误代码没有变化。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

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

如果将十进制列更改为(3,1),则最多可以达到99.9

答案 1 :(得分:0)

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

DECIMAL(precision, scale)