数据库
首页 > 数据库> > MYSQL LOAD DATA INFILE忽略重复行(自动增量作为主键)

MYSQL LOAD DATA INFILE忽略重复行(自动增量作为主键)

作者:互联网

我使用LOAD DATA INFILE命令遇到了一些麻烦,因为我想忽略已经在数据库中的行…如果我有一个包含数据的表,如下所示,

id  |name   |age
--------------------
1   |aaaa   |22
2   |bbbb   |21
3   |bbaa   |20
4   |abbb   |22
5   |aacc   |22

其中id是自动增量值.我所拥有的csv文件包含如下数据,

"cccc","14"
"ssee","33"
"dddd","22"
"aaaa","22"
"abbb","22"
"dhgg","34"
"aacc","22"

我想忽略行,

    "aaaa","22"
    "abbb","22"
    "aacc","22"

并将其余内容上传到表格中.我已经将所有内容上传到表中的查询如下,

    LOAD DATA INFILE 'member.csv'
    INTO TABLE tbl_member
    FIELDS TERMINATED BY ','
           ENCLOSED BY '"'
           ESCAPED BY '"'
           LINES TERMINATED BY '\n'
    (name, age);

请帮助我完成这项任务..将非常感谢..我试过很多链接,但没有帮助:(

解决方法:

在年龄列上创建一个UNIQUE索引,然后:

LOAD DATA INFILE 'member.csv'
IGNORE INTO TABLE tbl_member
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
(name, age);

标签:load-data-infile,mysql,csv
来源: https://codeday.me/bug/20190928/1827937.html