从MySQL存储过程执行Shell命令

Sye*_*man 3 mysql

是否可以使用MySQL存储过程运行任意的Shell命令-例如,将文件从一个文件夹移动到另一个文件夹?如果是这样,怎么办?

Kev*_*nez 5

MySQL并未立即提供此功能,但由lib_mysqludf_sys库提供。如果安装了该程序,则可以调用其sys_exec函数来执行命令:

DELIMITER @@

CREATE TRIGGER Test_Trigger 
AFTER INSERT ON MyTable 
FOR EACH ROW 
BEGIN
 DECLARE cmd CHAR(255);
 DECLARE result int(10);
 SET cmd=('mv path/to/file new/path/file');
 SET result = sys_exec(cmd);
END;
@@
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

(我在http://crazytechthoughts.blogspot.com/2011/12/call-external-program-from-mysql.html上找到了这种方法。)