LOAD DATA LOCAL INFILe:从文本文件自动增量语法加载数据

时间:2013-03-05 21:50:36

标签: mysql primary-key auto-increment load-data-infile

我正在尝试将.txt文件中的数据加载到mysql中。该表如下所示:

+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| user_name   | varchar(10)      | NO   | MUL | NULL    |                |
| user_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| listings    | int(10) unsigned | NO   |     | 0       |                |
| connections | int(10) unsigned | NO   |     | 0       |                |
| flags       | int(10) unsigned | NO   |     | 0       |                |
| days        | int(10) unsigned | NO   |     | 0       |                |
| email       | varchar(30)      | NO   |     | NULL    |                |
| suspend     | tinyint(1)       | YES  |     | 0       |                |
+-------------+------------------+------+-----+---------+----------------+

当我使用LOAD DATA LOCAL INFILE加载数据时如何处理user_id列?所有其他项目都已有数据。我想数据库分配user_id。这可能吗?

user_id下的列应该在文本文件中看起来像什么?

2 个答案:

答案 0 :(得分:2)

我使用了以下内容:

name   \N    2    4    2    100    emal@mail.com    o

每个条目都会自动给出正确的ID代替\ N。

如果有更好的方法,请告诉我。

答案 1 :(得分:1)

“您还可以通过将输入值分配给用户变量而不将变量分配给表格列来放弃输入值”阅读here

示例:

LOAD DATA LOCAL INFILE 'file.txt' INTO TABLE tablename (user_name, @skip, listings, connections, flags, days, email, suspend);