Я пытаюсь загрузить набор данных из файла .txt
в MySQL
данных MySQL
. Однако я не могу загрузить набор данных date_time в таблицу. он возвращается 0000-00-00 00:00:00
. Может ли кто-нибудь сообщить мне, что я делаю неправильно?
Я создал следующий taxi_movement_data
таблицы в taxiapp
схему.
CREATE TABLE 'taxiapp'.'taxi_movement_data' (
'tracked_datetime' DATETIME NOT NULL,
'longitude' DOUBLE NOT NULL,
'lattitude' DOUBLE NOT NULL,
'id' INT NOT NULL AUTO_INCREMENT, PRIMARY KEY ('id'), UNIQUE INDEX 'id_UNIQUE' ('id' ASC));
Образец файла.txt выглядит следующим образом.
2018-06-01T23:51:09+08:00,103.62926,1.30081
2018-06-01T23:51:09+08:00,103.63598,1.27931
2018-06-01T23:51:09+08:00,103.6375,1.34143
Мой SQL-запрос выглядит следующим образом
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/uploads/ltasampledata.txt'
INTO TABLE taxi_movement_data
FIELDS TERMINATED BY ',' enclosed by '"'
LINES TERMINATED BY '\r\n'
SET tracked_datetime = DATE_ADD(DATE_FORMAT(substring(@tracked_datetime,1,19), '%Y-%m-%d %H:%i:%s'),INTERVAL 8 HOUR);
Результат заключается в том, что время datetime не может быть загружено. "Tracked_datetime" возвращается 0000-00-00 00:00:00
. Долгота, широта и id работают нормально и как следует.
Результаты таблицы после запроса.
Извините, я не разрешаю загружать изображения прямо на Stackoverflow, чтобы он стал ссылкой.
Сообщение об ошибке следующим образом
3 row(s) affected, 9 warning(s): 1265 Data truncated for column 'tracked_datetime' at row 1 1261 Row 1 doesn't contain data for all columns 1048 Column 'tracked_datetime' cannot be null 1265 Data truncated for column 'tracked_datetime' at row 2 1261 Row 2 doesn't contain data for all columns 1048 Column 'tracked_datetime' cannot be null 1265 Data truncated for column 'tracked_datetime' at row 3 1261 Row 3 doesn't contain data for all columns 1048 Column 'tracked_datetime' cannot be null Records: 3 Deleted: 0 Skipped: 0 Warnings: 9 0.078 sec
Я сделал глупую ошибку. В любом случае, я исправил его следующим. Надеюсь, это поможет кому-то по дороге.
Добавьте (@tracked_datetime, longitude, latitude) перед установкой tracked_datetime
SQL-запрос должен быть следующим.
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/uploads/ltasampledata.txt'
INTO TABLE taxi_movement_data
FIELDS TERMINATED BY ',' enclosed by '"'
LINES TERMINATED BY '\r\n'
(@tracked_datetime,longitude,lattitude)
SET tracked_datetime = DATE_ADD(DATE_FORMAT(substring(@tracked_datetime,1,19), '%Y-%m-%d %H:%i:%s'),INTERVAL 8 HOUR);