Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

शर्तें पूरी होने पर MySQL लोड डेटा इनफाइल

एक विकल्प 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');

महत्वपूर्ण: किसी भी कोड इंजेक्शन को रोकने के लिए इनपुट डेटा को मान्य करें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बिना किसी मान के एक पंक्ति कैसे सम्मिलित करें ताकि सभी कॉलम अपना डिफ़ॉल्ट मान मान लें?

  2. MySQL सीमांकक सिंटैक्स त्रुटि

  3. जेपीए का नक्शा<KEY, VALUE> JPQL की क्वेरी विफल रही

  4. Magento सेट तिथियों के बीच ऑर्डर योग का योग प्राप्त करें

  5. सीएसवी बनाम MySQL प्रदर्शन