Я относительно новичок в 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 ...
ОБНОВИТЬ:
Благодаря 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» или «Not Null» снятым.
Строка 1246 выглядит так: 1955Bullets,1955,9,Baltimore,Bullets,Baltimore Bullets,,,,,,,,,,,,,,,,,,,,
Я делаю еще одну глупую ошибку?
unsigned
, хотя это может привести к немного другой ошибке данных. Все еще стоит проверить - person helion3   schedule 09.11.2013ptsg
в таблицеsummary2
? - person peterm   schedule 09.11.2013