我在将值插入表格时遇到问题。我收到了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,表格只包含上述值。目前是空的。我也试过放下桌子并创造新的。错误代码没有变化。任何帮助将不胜感激。
答案 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)