MySQL Load Data Infile автоматически увеличивает значение идентификатора

Я хочу вставить столбец идентификатора в свою таблицу и получить данные этой таблицы из текстового файла. Например, мой текстовый файл выглядит так:

12    1212    4989    121
121   23      123     110
789   99      234     544
...

и он имеет около 20 миллионов строк. Я хочу вставить эти данные в таблицу и включить для нее столбец с автоматически увеличивающимся значением идентификатора. Я буду использовать «Загрузить файл данных», но я хочу создать свою таблицу, как указано ниже:

id    a     b       c       d
---   ---   ---     ---     ---  
1    12    1212    4989    121
2    121   23      123     110
3    789   99      234     544
...

Как я могу создать такую ​​​​таблицу с помощью mysql (workbench)


person JoshuaJeanThree    schedule 29.12.2012    source источник


Ответы (2)


во-первых, создать таблицу с идентификатором столбца имеет свойство автоматического увеличения:

CREATE TABLE mytable (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     a INT NULL,
     b INT NULL,
     c INT NULL,
     d INT NULL,
     PRIMARY KEY (id)
) ENGINE=MyISAM;

затем вы должны загрузить данные в таблицу с файлом загрузки данных, указав имена столбцов:

LOAD DATA LOCAL INFILE 'C:/DATA/mydata.txt'
INTO TABLE test.mytable
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
(a, b, c, d) SET ID = NULL;

см.: Как ЗАГРУЗИТЬ ДАННЫЕ INFILE в mysql с автоматическим увеличением первого столбца?

person JoshuaJeanThree    schedule 29.12.2012
comment
было здравым смыслом сначала создать таблицу, а также файл загрузки имеет только 4 столбца, т.е. столбец автоинкремента не будет заполняться - person sourcecode; 29.12.2012
comment
Если какое-либо из ваших имен полей содержит точки, вам нужно будет окружить их обратными кавычками. - person shacker; 28.10.2014
comment
он увеличивается, но это не заказ. и как я могу сделать заказ - person bob marti; 27.03.2017

это может сделать для вас ..

     load data local infile 'data.csv' into table tbl fields terminated by ','
     enclosed by '"'
     fields terminated by '\t'
     lines terminated by '\n'
     (a,b,c,d)

для получения дополнительной информации см. эту ссылку

person sourcecode    schedule 29.12.2012