MySQL Workbench 十进制数超出范围
MySQL Workbench out of range value for decimal number
我想创建一个 table
create table Oceny_projekty
(
OProj_Id int not null comment '',
ID_Projektu int comment '',
ID_Studenta int comment '',
OProj_Ocena decimal(1,1) comment '',
OProj_Data date comment '',
primary key (OProj_Id)
);
并用 PowerDesigner 生成的示例数据填充它
insert into Oceny_projekty (OProj_Id, ID_Projektu, ID_Studenta, OProj_Ocena, OProj_Data)
values (2, 18, 10, '2.5', '1857-12-25');
我知道了:
insert into Oceny_projekty (OProj_Id, ID_Projektu, ID_Studenta,
OProj_Ocena, OProj_Data) values (2, 18, 10, '2.5', '1857-12-25') Error
Code: 1264. Out of range value for column 'OProj_Ocena' at row 1
如何修改可以接受十进制数的命令? (整数没有问题)
使用 MySQL Workbench 6.3、PowerDesigner 16.6
提前致谢!
将OProj_Ocena
声明为decimal(1,1)
意味着它有0个整数位(precision - scale = 1 - 1 = 0
)和1个小数位。它只能存储值 0, 0.1, 0.2 ... 0.9
.
您需要的数据类型可能是decimal(2,1)
。
将 Marek Grzenkowicz 的答案换一种方式,DECIMAL(M, D):
M = D +(整数位数)。 See 12.25.2 DECIMAL Data Type Characteristics
所以,确定你想要的整数位数,小数点左边的位数,以及你需要的小数位数 (D) 并将它们相加得到 M。IMO,他们应该有使用短语“整数数字”或“整数数字”来使这一点更加明显,即使他们所说的意思是 M 代表所有数字。起初我误解了这一点,直到我重新阅读了他们的描述几次。
我想创建一个 table
create table Oceny_projekty
(
OProj_Id int not null comment '',
ID_Projektu int comment '',
ID_Studenta int comment '',
OProj_Ocena decimal(1,1) comment '',
OProj_Data date comment '',
primary key (OProj_Id)
);
并用 PowerDesigner 生成的示例数据填充它
insert into Oceny_projekty (OProj_Id, ID_Projektu, ID_Studenta, OProj_Ocena, OProj_Data)
values (2, 18, 10, '2.5', '1857-12-25');
我知道了:
insert into Oceny_projekty (OProj_Id, ID_Projektu, ID_Studenta, OProj_Ocena, OProj_Data) values (2, 18, 10, '2.5', '1857-12-25') Error Code: 1264. Out of range value for column 'OProj_Ocena' at row 1
如何修改可以接受十进制数的命令? (整数没有问题) 使用 MySQL Workbench 6.3、PowerDesigner 16.6
提前致谢!
将OProj_Ocena
声明为decimal(1,1)
意味着它有0个整数位(precision - scale = 1 - 1 = 0
)和1个小数位。它只能存储值 0, 0.1, 0.2 ... 0.9
.
您需要的数据类型可能是decimal(2,1)
。
将 Marek Grzenkowicz 的答案换一种方式,DECIMAL(M, D):
M = D +(整数位数)。 See 12.25.2 DECIMAL Data Type Characteristics
所以,确定你想要的整数位数,小数点左边的位数,以及你需要的小数位数 (D) 并将它们相加得到 M。IMO,他们应该有使用短语“整数数字”或“整数数字”来使这一点更加明显,即使他们所说的意思是 M 代表所有数字。起初我误解了这一点,直到我重新阅读了他们的描述几次。