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)
我在将值插入 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)