Как создать таблицу с определенным TXT-файлом? - PullRequest
0 голосов
/ 03 июня 2019

Файл, который я пытаюсь загрузить, выглядит следующим образом: /04:2016:27/$/06,54,05/$/Page/$/Bob/$/24/$/Bax/$/Reper 10/

получаю ошибку

Код ошибки: 1292. Неверное значение даты и времени: '' для столбца 'data_achizitie' в строке 1

create table Tabela_veche(
    data_achizitie date,
    numere varchar(255),
    nume varchar (255),
    prenume varchar(255),
    bucati int,
    unit_mas varchar(255),
    reper varchar(255),
    fulldate datetime);

И

LOAD DATA INFILE 
    'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\fisier.txt'
    INTO TABLE Tabela_veche
    CHARACTER SET latin1
    FIELDS TERMINATED BY '/'
    OPTIONALLY ENCLOSED BY '$'
    LINES TERMINATED BY '\r\n'; 

Пожалуйста, помогите! Спасибо!

1 Ответ

0 голосов
/ 03 июня 2019

Взгляните на раздел «Предварительная обработка ввода» на dev.mysql.com/doc/refman/8.0/en/load-data.html - в вашем случае назначьте столбец данных переменной и отформатируйте ее перед записью в таблицу. И ваши строки, оканчивающиеся и опционально заключенные в неверный путь. Обратите внимание на функцию str_to_date. (практически любая функция sql доступна в операторе set).

LOAD DATA INFILE 
    'C:\\Program Files\\MariaDB 10.1\\data\\sandbox\\data.txt'
    INTO TABLE Tabela_veche
    CHARACTER SET latin1
    FIELDS TERMINATED BY '$'
    OPTIONALLY ENCLOSED BY '/'
    LINES TERMINATED BY '\r\n'
(@dt,   
    numere,   nume,  prenume ,    bucati ,  unit_mas ,    reper  ) 
     set data_achizitie = str_to_date(@dt,'%m:%Y:%d')
;

Кстати, вы не указали полную дату в данных, поэтому вам нужно указать, какие столбцы вы загружаете.

+----------------+----------+------+---------+--------+----------+----------+----------+
| data_achizitie | numere   | nume | prenume | bucati | unit_mas | reper    | fulldate |
+----------------+----------+------+---------+--------+----------+----------+----------+
| 2016-04-27     | 06,54,05 | Page | Bob     |     24 | Bax      | Reper 10 | NULL     |
+----------------+----------+------+---------+--------+----------+----------+----------+
1 row in set (0.00 sec)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...