在表中插入值时遇到问题。我收到了 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,表将只包含上述值。目前它是空的。我也尝试过删除表并创建新的。错误代码没有变化。任何帮助都将不胜感激。
2条答案
按热度按时间kgqe7b3p1#
改变
DECIMAL(2,1)
至DECIMAL(3,1)
将列的值保留到99.9width_in_inches
. 要保持较高的值,需要相应地调整精度和比例:mbjcgjjk2#
问题是,通过将列设置为十进制(2,1),您允许数字最多包含2个部分,因此1代表整数,1代表小数。当您尝试先插入14,然后插入16时,会将这两个值的最大值更改为9.9,并导致重复。
如果将十进制列更改为(3,1),则可以增加到99.9