我在表中插入值时遇到问题。我收到Error Code: 1062
错误消息。
使用SHOW CREATE TABLE roof_panel_width;
返回相关表的CREATE
代码。
创建表"roof_panel_width"( 'rpw_id' int(11( 不空AUTO_INCREMENT, "width_in_inches"十进制(2,1(不为空, 主键("rpw_id"(, 唯一密钥"width_in_inches"("width_in_inches"( ( 引擎=InnoDB AUTO_INCREMENT=30 默认字符集=拉丁1'
使用以下代码时返回错误代码。
插入"roof_panel_width"("width_in_inches"( 值 (14(,(16(,(18(,(24(,(29.5(,(36(;
返回的完整错误是
Error Code: 1062. Duplicate entry '9.9' for key 'width_in_inches'
我不是在尝试插入值 9.9,该表将仅包含上述值。此刻是空的。我也尝试删除表格并创建新的。错误代码没有变化。任何帮助将不胜感激。
问题是,通过将列设置为 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)