【问题标题】:MySQL Load Data Infile auto incremented ID valueMySQL Load Data Infile 自动递增 ID 值
【发布时间】:2012-12-14 13:22:04
【问题描述】:

我想在我的表中插入一个 ID 列并从文本文件中获取该表的数据。 例如我的文本文件是这样的:

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

它有大约 20M 行。我想将此数据插入到表中,并为其包含一个自动递增的 ID 值列。我将使用“Load data infile”,但我想创建如下所示的表:

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

如何使用mysql(工作台)创建这种表

【问题讨论】:

    标签: mysql indexing auto-increment load-data-infile


    【解决方案1】:

    这对你有用..

         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)
    

    更多参考请见this link

    【讨论】:

      【解决方案2】:

      首先,创建具有列 ID 的表具有自动增量属性:

      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;
      

      那么你应该通过给出列名将数据加载到带有加载数据infile的表中:

      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;
      

      见:How to LOAD DATA INFILE in mysql with first col being Auto Increment?

      【讨论】:

      • 先创建表是常识。而且“加载文件”只有 4 列,即自动增量列不会填满
      • 如果您的任何字段名称包含句点,则需要用反引号将它们括起来。
      • 它是递增的,但它不是一个订单。我怎样才能下订单
      猜你喜欢
      • 2023-03-03
      • 2012-10-05
      • 2012-10-05
      • 2010-11-17
      • 1970-01-01
      • 2017-07-21
      • 2012-06-01
      • 2011-09-01
      相关资源
      最近更新 更多