我可以使用的mysqlimport/LOAD DATA LOCAL INFILE存储过程
我使用的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://*.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