Я относительно новичок в MySQL/SQL, и это мой первый пост на этом сайте, поэтому я приношу свои извинения, если неправильно сформулирую этот вопрос.Почему мои данные усекаются?
Я сохранил копию моего .xlsx-файла в виде CSV-файла. Я пытаюсь загрузить данные из этого CSV-файла в таблицу. Я получаю следующее сообщение об ошибке:
0 строк (ы) пострадавших, 64 предупреждение (ы): 1265 Данные усечены для столбца 'ptsg' в строке 1
Журнал ошибок здесь: http://pastie.org/private/byzcwjtslxpfjyhoog2g
Запрос здесь: http://pastie.org/private/tyzkbyqnuwpsafrjxcetq#6,8,12-13
Я пытался играть с «ptsg» тип данных столбца, изменяя его с плавающей точкой, в десятичную без удачи.
Данные, которые вставляются в этот столбец, составляют максимум 4 значащих цифры и принимают форму чего-то типа «100» или «100,2», причем не более 1 числа, продолжающего десятичную.
У меня есть другие поплавочные столбцы, которые отлично работают с данными типа «0.347». Почему мои данные усекаются?
Вот три строки данных в CSV-форме:
2013Nuggets,2013,1,Denver,Nuggets,Denver Nuggets,82,19705,3145,6613,0.476,662,1704,0.388,1859,2429,0.765,791,2652,3443,1813,605,352,1157,1719,8811,107.5 2013Knicks,2013,2,New York,Knicks,New York Knicks,82,19780,3140,6867,0.457,765,2081,0.368,1689,2087,0.809,847,2470,3317,1757,625,475,1123,1743,8734,106.5 2013Rockets,2013,3,Houston,Rockets,Houston Rockets,82,19880,3170,6975,0.454,677,1843,0.367,1668,2083,0.801,962,2549,3511,1955,581,371,1110,1641,8685,105.9 2013Suns,2013,4,Phoenix,Suns,Phoenix Suns,82,20005,3219,6844,0.47,701,1857,0.377,1472,1939,0.759,821,2478,3299,1945,545,357,1169,1666,8611,105
Выход из запроса: SHOW WARNINGS;
Note 1265 Data truncated for column 'ptsg' at row 1 Note 1265 Data truncated for column 'ptsg' at row 2 Note 1265 Data truncated for column 'ptsg' at row 3 Note 1265 Data truncated for column 'ptsg' at row 5 ...
UPDATE:
Благодаря peterm, я заметил, что я использую «десятичный» тип данных некорректно для столбца «ptsg». Я использовал DECIMAL (10,0) вместо (10,1). Мои 64 предупреждения были уменьшены до 1.
0 пораженных строк, 1 предупреждение (и): 1366 Неправильное десятичное значение: '' для столбца 'ptsg' в строке 1246 Записи: 1334 Удалено: 0 Пропущено: 1334 Предупреждения: 1
Строка 1246 имеет пробел для ptsg. Мой запрос выше (в частности, ptsg = NULLIF (@vptsg, '')) должен? введите «NULL» для строки 1246 в столбец ptsg. Я проверил таблицу, а столбец ptsg, DECIMAL (10,1), должен допускать значения NULL, так как я отключил флажок «NN» или «Нет Null».
Row 1246 выглядит следующим образом: 1955Bullets, 1955,9, Балтимор, Пули, Балтимор Пули ,,,,,,,,,,,,,,,,,,,,,
Могу ли я сделать другая глупая ошибка?
Прочитайте это и вставьте выход на свой вопрос: http://dev.mysql.com/doc/refman/5.7/ru/show-warnings.html –
Пожалуйста, покажите пару строк, упомянутых в предупреждениях (например, 1 и 2). – peterm
. Какими данными является этот столбец «ptsg»? – bksi