我使用的mysqlimport得到從文本文件的行內的表很容易,像這樣:我可以使用的mysqlimport/LOAD DATA LOCAL INFILE存儲過程
mysqlimport -u root -p --local mytest employee.txt
我能做到這一點從存儲過程?到目前爲止所有的嘗試都失敗了恐怕這隻能通過命令行來使用?目的是讓一個作業調用一個SP,這個SP從一個文本文件中提取行(製表符分隔),然後SP將每行與現有表進行比較,如果發現它將更新或插入。
感謝你
我使用的mysqlimport得到從文本文件的行內的表很容易,像這樣:我可以使用的mysqlimport/LOAD DATA LOCAL INFILE存儲過程
mysqlimport -u root -p --local mytest employee.txt
我能做到這一點從存儲過程?到目前爲止所有的嘗試都失敗了恐怕這隻能通過命令行來使用?目的是讓一個作業調用一個SP,這個SP從一個文本文件中提取行(製表符分隔),然後SP將每行與現有表進行比較,如果發現它將更新或插入。
感謝你
存儲過程在服務器上執行並且無法訪問遠程文件系統。
這大致相當於一個叫LOAD DATA INFILE
:
LOAD DATA INFILE 'employee.txt' INTO TABLE mytest
這需要employee.txt
駐留在服務器上。 --local
選項要求mysqlimport
客戶端橋接該數據。
加載數據INFILE不適用於存儲的進程。你想使用Perl腳本或其他方式來做到這一點
你會怎麼做? – Robert 2013-10-07 08:42:34
參考: http://stackoverflow.com/questions/10737974/load-data-local-infile-gives-the-error-the-used-command-is-not-allowed-with-this – 2013-10-14 18:22:24
謝謝你的時間。我不完全理解你對--local選項所說的話,這是什麼意思?你也說'LOAD DATA INFILE'employee.txt'INTO TABLE mytest'可以從存儲過程運行,只要在服務器上提供txt文件?最後,mysqlimport是否也要求文件在服務器上?謝謝 – Mat41 2013-05-01 22:40:56
'--local'選項允許您將本地文件導入服務器,因爲服務器無法在沒有幫助的情況下從您的機器加載文件。存儲過程將僅限於在服務器上加載文件。 – tadman 2013-05-02 15:24:31