MySQL Inport--导入数据
LOAD DATA INFILE導入數據
語法:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE ''[REPLACE | IGNORE]INTO TABLE tbl_name[FIELDS[TERMINATED BY 'string'][[OPTIONALLY] ENCLOSED BY 'char'][ESCAPED BY 'char' ]][LINES[STARTING BY 'string'][TERMINATED BY 'string']][IGNORE number LINES][(col_name_or_user_var,...)][SET col_name = expr,...)]LOAD DATA 命令中的默認值:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
LINES TERMINATED BY '\n' STARTING BY ''
文件參數:
LOCAL參數:1、如果指定了LOCAL,則文件會被客戶主機上的客戶端讀取,并被發送到服務器。文件會被給予一個完整的路徑名稱,以指定確切的位置。如果給定的是一個相對的路徑名稱,則此名稱會被理解為相對于啟動客戶端時所在的目錄。 2、如果LOCAL沒有被指定,則文件必須位于服務器主機上,并且被服務器直接讀取。
當在服務器主機上為文件定位時,服務器使用以下規則:
1、如果參數為絕對路徑,則MySQL使用該絕對路徑
2、如果參數為帶目錄的相對路徑,則MySQL會相對于數據目錄進行文件查找
3、如果參數為不帶目錄的文件名,則MySQL會在數據目錄下進行文件查找
?
LOAD DATA LOCAL命令運行將本例文件加載到數據庫中,存在安全問題,可以使用--local-infile=0來從服務器端禁用LOAD DATA LOCAL命令。
LOAD DATA LOCAL命令只能針對單個文件進行數據導入。
MYSQLIMPORT使用LOAD DATA INFILE的命令接口,可以使用--user-thread選項來設置導入數據的并發線程,其本質是同時執行多個LOAD DATA INFILE的命令。
?
LOAD DATA INFILE模板
如果文件使用MYSQLDUMP -tab 或SELECT INTO OUTFILE導出,那么可以使用LOAD DATA INFILE來導入。
常用導入模板:
?
執行SQL命令文件
對于包含SQL命令的文件,可以使用mysql命令執行,也可以在登錄MySQL后使用source命令執行,建議使用mysql方式:
1、可以使用--force參數來控制是否出錯后執行
2、可以使用--verbose參數輸出執行結果,并將正常結果和異常結果分開存放,方便查看
如果使用source命令,中間命令執行失敗后仍會繼續執行后續命令,并很可能被后續執行結果“覆蓋”導致錯誤被忽略
?
如果希望使用mysql命令來執行命令文件且想使用事務,可以在命令開始和命令結束添加"BEGIN"+“COMMIT”,然后將--force參數設置為False,當執行失敗后會自動回滾并退出。
如果希望使用source命令來執行命令文件且想使用事務,不能在文件中使用"BEGIN"+“COMMIT”,需要在SOURCE命令外部使用"BEGIN"+“COMMIT”,在判斷SOURCE執行結果后確定是COMMIT還是ROLLBACK。
?
轉載于:https://www.cnblogs.com/gaogao67/p/10639604.html
總結
以上是生活随笔為你收集整理的MySQL Inport--导入数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里天池学习赛-金融风控-贷款违约预测
- 下一篇: java.awt中文乱码_Java AW