我试图使用“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 |
...
答案 0 :(得分:13)
为什么不加载到具有自动增量主键的表中?
create table MyTable (
id integer auto_increment primary key,
...
)
您可以指定将在表名后导入的列:
LOAD DATA INFILE 'filename' INTO TABLE tablename (col1,col2,...);
如果您没有指定id列,MySQL将不会从文件中读取它。