題記:
因業務需要,需將一些用戶記錄進行匯總並上傳到指定平台。需要先將指定時間的所有用戶記錄進行匯總。涉及到了大數據量的數據導入導出。
使用 iINTO OUTFILE 和 LOAD DATA LOCAL INFILE 實現了改功能,記錄一下
步驟:
- 1 將源數據導出(select * from
test_table
ORDER BY createtime into outfile 'E:\temp\test.txt';) - 2 將源數據篩選后導入(LOAD DATA LOCAL INFILE 'E:\temp\test.txt' INTO TABLE test_table_sort (@c1,c2,c3,...,c14,c15);)
注意:
- 1 需要先開啟文本導出權限
- 1 show global variables like '%secure%'; //查詢設置
- 2 將 secure_file_priv 值賦值為 ""
- 2 導入數據報錯 (The used command is not allowed with this MySQL version)原因除了是mysql版本過低外,最有可能是因為設置禁止遠程導入文件,所以navicat執行導入報錯。可以在本機上cmd連接mysql后再執行。解決!
- 3 導入時可用 @變量名 指定某列值不導入;