【问题标题】:MySQL LOAD DATA INFILE - Loading a file with no primary keyMySQL LOAD DATA INFILE - 加载没有主键的文件
【发布时间】:2010-12-12 00:54:11
【问题描述】:

我试图使用“LOAD DATA LOCAL INFILE 'filename' INTO TABLE 'tablename'”将数据文件加载到 mysql 表中。

问题是源数据文件包含每个字段的数据,但缺少主键('id' 列)。我必须为源数据文件的每一行添加一个唯一的 id,否则导入将无法通过。

是否可以选择忽略源文件中的主键或在导入期间自动增加主键?

它已经被设置为一个自增主键。

mysql> desc tablename;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id                 | int(11)      | NO   | PRI | NULL    | auto_increment | 
...

【问题讨论】:

    标签: mysql import load-data-infile


    【解决方案1】:

    为什么不加载到具有自增主键的表中?

    create table MyTable (
        id integer auto_increment primary key,
        ...
    )
    

    可以在表名后面指定要导入的列:

    LOAD DATA INFILE 'filename' INTO TABLE tablename (col1,col2,...);
    

    如果不指定 id 列,MySQL 不会从文件中读取它。

    【讨论】:

    • 建表时已经设置为自增主键。
    • 注意:列应该在任何字段/行/列终止符/封闭声明之后。
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2013-09-24
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多