MySQL LOAD DATA INFILE - 加载没有主键的文件

jac*_*ack 11 mysql import load-data-infile

我试图使用"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 | 
...
Run Code Online (Sandbox Code Playgroud)

And*_*mar 13

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

create table MyTable (
    id integer auto_increment primary key,
    ...
)
Run Code Online (Sandbox Code Playgroud)

您可以指定将在表名后导入的列:

LOAD DATA INFILE 'filename' INTO TABLE tablename (col1,col2,...);
Run Code Online (Sandbox Code Playgroud)

如果您没有指定id列,MySQL将不会从文件中读取它.

  • 注意:列应位于任何字段/行/列终止符/封闭声明之后. (3认同)