首页 文章

mysql加载数据本地infile

提问于
浏览
2

我正在尝试使用下面的代码使用LOAD DATA LOCAL INFILE将数据加载到mysql表中 .

MySQL的:

LOAD DATA INFILE '/var/www/vhosts/domain.com/httpdocs/test1.csv' INTO TABLE temp_table FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (recloc,client_acc)

编辑:将LOAD DATA LOCAL INFILE更改为LOADA DATA INFILE,删除了SET id = null,添加了IGNORE 1 LINES

我没有错误,也没有导入的记录 . 我相信这个问题与列名相关,但我很难完全理解这些名称应该是什么 . 它们应该是CSV中的实际列名吗?或DB表中的字段名称?我还希望有一个auto_incremented主键(id) .

CSV:

recloc,client_acc
"NLGSX3","CORPORATE"
"7SC3BA","QUALITY ASSURANCE"
"3B9OHF","90717-6710"

对我可能做错的任何建议?谢谢!

2 回答

  • 0

    CSV中的列名称不是必需的,因此您应该添加 IGNORE 1 LINES 子句 .

    查询 (recloc,client_acc) 中的列需要匹配表中的列 . CSV中的第一列将插入 recloc ,第二列将插入 client_acc .

    如果您没有在语句中指定AUTO_INCREMENT列,但表中有一个,则应自动填充 .

  • 2

    excel到mysql数据导入的简短而甜蜜的解决方案:

    适用于txt文件格式 . 详细地:

    tbl name=t1
    feilds are= name varchar,email varchar;
    

    text.txt文件<< ==这个文本文件第一行表列名:

    name,   email
    "n1",   "e1"  next line 
    "n2",   "e2" next line 
    "n3",   "e3" next line 
    "n4",   "e4" next line 
    "n5",   "e5" next line 
    "n6",   "e6" next line 
    "n7",   "e7" next line
    

    请忽略下一行语句在wamp中的SQL查询

    LOAD DATA INFILE 'c:/wamp/www/touch/text.txt' INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES(name,email)
    

    为了成功运行此commnad,我们分别创建了文件夹 .

    真实的是

    C:\ wamp \ mysql \ data \ wamp \ www \ touch \ text.txt << == pysical文件路径是 .

    但我们提到c:/wamp/touch/text.txt

相关问题