एक विकल्प UDF का उपयोग करना है , उदाहरण के लिए:lib_mysqludf_sys ।
यूडीएफ स्थापित करने के बाद, आप कुछ ऐसा कर सकते हैं:
शेल स्क्रिप्ट (/server/loadpath/load.sh):
mysql -u [user] -p[pass] -e "LOAD DATA INFILE '$1' INTO TABLE $2;"
संग्रहित प्रक्रिया:
DELIMITER $$
DROP PROCEDURE IF EXISTS load_data$$
CREATE PROCEDURE load_data(pfile VARCHAR(100), pdbtable VARCHAR(100))
BEGIN
DECLARE exec_str VARCHAR(500);
DECLARE ret_val INT;
IF (check_10m_file() = 'file ok') THEN
SET exec_str := CONCAT('sh /server/loadpath/load.sh ', pfile, ' ', pdbtable);
SET ret_val := sys_exec(exec_str);
IF ret_val = 0 THEN
SELECT 'OK' Result;
ELSE
SELECT 'ERROR' Result;
END IF;
END IF;
END$$
DELIMITER ;
CALL load_data('/server/filepath/file.csv', 'mydb.mytable');
महत्वपूर्ण: किसी भी कोड इंजेक्शन को रोकने के लिए इनपुट डेटा को मान्य करें।