#mysql #precision
#mysql #точность
Вопрос:
У меня есть следующая структура MySQL
id double PK
datenum double(12,11)
Timestamp varchar(25)
Min_F1_baro_20_ float
Max_F1_baro_20_ float
Mean_F1_baro_20_ float
но когда я пытаюсь вставить значение, я получаю следующую ошибку:
ОБНОВЛЕНО
ERROR 1264: Out of range value for column 'datenum' at row 1
Инструкция SQL:
INSERT INTO `forwind`.`metozean_aggregateddata_fino_0_01666667_14_01_2010_00_00` (`id`, `datenum`, `Timestamp`, `Min_F1_baro_20_`, `Max_F1_baro_20_`, `Mean_F1_baro_20_`) VALUES (1, 435.34, '2011-12-12 12:12:12', 12, 12, 12)
Комментарии:
1. Какой запрос на вставку вы используете?
2. какие значения вы пытаетесь вставить?
3. не используйте двойные значения для первичных ключей!! с double вы никогда не можете быть уверены, что (1 = 2-1) истинно из-за ошибок округления. Используйте целые числа для PK.
Ответ №1:
double(12,11)
я думаю, это слишком точно;-)
Редактировать: я имею в виду, попробуйте double(12,4)
или что вам нужно; (12,11)
находится «вне диапазона» двойной точности