Значение MySQL Workbench вне диапазона для десятичного числа

Я хотел создать таблицу

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');

И у меня есть это:

вставить в Oceny_projekty (OProj_Id, ID_Projektu, ID_Studenta, OProj_Ocena, OProj_Data) значения (2, 18, 10, '2.5', '1857-12-25') Код ошибки: 1264. Значение вне диапазона для столбца 'OProj_Ocena' в строке 1

Как я могу изменить команду, которая может принимать десятичные числа? (с целыми числами проблем нет) Использование MySQL Workbench 6.3, PowerDesigner 16.6

Заранее спасибо!


person Aleksandra Skoczypiec    schedule 09.12.2017    source источник
comment
dev.mysql.com/doc/refman/ 5.7/ru/   -  person Paul Spiegel    schedule 09.12.2017
comment
Возможный дубликат ошибка десятичного типа MySQL вне допустимого диапазона   -  person Gord Thompson    schedule 09.12.2017
comment
Связали ли вы определенный профиль тестовых данных со столбцом OProj_oCena? Кажется странным, что он генерирует числа между кавычками.   -  person pascal    schedule 10.12.2017


Ответы (2)


Объявление OProj_Ocena как decimal(1,1) означает, что оно имеет 0 целых цифр (precision - scale = 1 - 1 = 0) и 1 дробную цифру. Он может хранить только значения 0, 0.1, 0.2 ... 0.9.

Тип данных, который вам нужен, вероятно, decimal(2,1).

person Marek Grzenkowicz    schedule 09.12.2017