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 '\r\n' ignore 1 lines;

sql解釋:
fields TERMINATED BY ',' LINES TERMINATED BY '\r\n' ignore 1 lines;
「,」是字段分割的標誌
「\r\n」是行分割的標誌
具體的分割標誌根據你的csv文件而定

html

前提: 每一個csv文件第一行爲字段名mysql

    建立的數據庫字段名同csv 文件的字段名linux

1. 批量導入 多個 csv 文件sql

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

(改腳本在導入數據的同時會刪除文件 別忘記在導入數據庫前備份文件啊)數據庫

2. 導入一個 csv 文件服務器

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

(',' 和 '\r\n' 是根據你的csv 文件決定的 第一個是 字段分割的標誌,第二個是行分割的標誌)this

(--local-infile: 沒有這個會報錯【ERROR 1148 (42000) at line 1: The used command is not allowed with this MySQL version】)編碼

相關文章
相關標籤/搜索