mysql,错误1062

lpwwtiir  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(487)

在表中插入值时遇到问题。我收到了 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'

使用follow代码时返回错误代码。

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,表将只包含上述值。目前它是空的。我也尝试过删除表并创建新的。错误代码没有变化。任何帮助都将不胜感激。

kgqe7b3p

kgqe7b3p1#

改变 DECIMAL(2,1)DECIMAL(3,1) 将列的值保留到99.9 width_in_inches . 要保持较高的值,需要相应地调整精度和比例:

DECIMAL(precision, scale)
mbjcgjjk

mbjcgjjk2#

问题是,通过将列设置为十进制(2,1),您允许数字最多包含2个部分,因此1代表整数,1代表小数。当您尝试先插入14,然后插入16时,会将这两个值的最大值更改为9.9,并导致重复。
如果将十进制列更改为(3,1),则可以增加到99.9

相关问题