Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Load Data Infile ketika kondisi terpenuhi

Salah satu opsi adalah menggunakan UDF , misalnya:lib_mysqludf_sys .

Setelah menginstal UDF, Anda dapat melakukan sesuatu seperti:

Skrip shell (/server/loadpath/load.sh):

mysql -u [user] -p[pass] -e "LOAD DATA INFILE '$1' INTO TABLE $2;"

Prosedur Tersimpan:

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');

PENTING: Validasi data input untuk mencegah injeksi kode apa pun.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada cara untuk mengabaikan kolom yang tidak ada di INSERT?

  2. cara menghapus catatan dari database dengan Ajax

  3. MYSQL - Bandingkan SEKARANG () dan tanggal di Paris TimeZone dalam permintaan

  4. Bagaimana cara menguji apakah Ci berhasil memasukkan data

  5. VIF mengembalikan koefisien alias dalam R