12

我试图使用“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 | 
...
4

1 回答 1

14

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

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

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

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

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

于 2009-11-01T12:21:14.583 回答