zoukankan      html  css  js  c++  java
  • mysql 导入csv文件

    linux下查看文件编码及修改编码
    http://blog.csdn.net/jnbbwyth/article/details/6991425/

    从FTP服务器上下载csv文件下来,我在Linux下查看得知文件的格式为(具体方法参考http://blog.csdn.net/jnbbwyth/article/details/6991425/):set fileencoding
    但是我直接使用load data导入的时候,发现中文的列,按照网上的方法修改文件的字符编码还是不行
    我的MySQL的表的字符集是utf的格式的,我的csv文件的格式经过查看是latin1的。通过上面文章的方法把文件的格式不管是改成gb2312还是utf8的,都不行,都会出现乱码
    最后通过下面的这个方法实现导入数据成功
    添加了character set gb2312

    mysql> load data local infile '/root/bao/zijingtuoguanjiaoyimingxi/资金托管交易明细.csv' into table escrow_transaction_detail character set gb2312 fields TERMINATED BY ',' LINES
    TERMINATED BY ' ' ignore 1 lines;

    sql解释:
    fields TERMINATED BY ',' LINES TERMINATED BY ' ' ignore 1 lines;
    “,”是字段分割的标志
    “ ”是行分割的标志
    具体的分割标志根据你的csv文件而定

    前提: 每个csv文件第一行为字段名

        创建的数据库字段名同csv 文件的字段名

    1. 批量导入 多个 csv 文件

    for file in ./*.csv;do mv $file tablename.csv;mysqlimport --local --fields-terminated-by="," -uusename -ppassword databasename tablename.csv;rm tablename.csv;done

    (改脚本在导入数据的同时会删除文件 别忘记在导入数据库前备份文件啊)

    2. 导入一个 csv 文件

    mysql --local-infile -uusename -ppassword databasename -e "LOAD DATA LOCAL INFILE '1.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY ' '"

    (',' 和 ' ' 是根据你的csv 文件决定的 第一个是 字段分割的标志,第二个是行分割的标志)

    (--local-infile: 没有这个会报错【ERROR 1148 (42000) at line 1: The used command is not allowed with this MySQL version】)

  • 相关阅读:
    在国外搭建 Web 服务器
    双向循环链表的实现
    使用C/C++扩展Python
    用C语音编写python的扩展模块,也就是python调c库
    《扩展和嵌入python解释器》1.4 模块方法表和初始化函数
    linux如何使用NFS挂载文件系统
    linux用户管理
    eims系统新增一级目录菜单流程
    Hadoop参考学习
    Got error: 1045:
  • 原文地址:https://www.cnblogs.com/smail-bao/p/6379294.html
Copyright © 2011-2022 走看看