Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Load Data Infile khi các điều kiện được đáp ứng

Một tùy chọn là sử dụng UDF , ví dụ: lib_mysqludf_sys .

Sau khi cài đặt UDF, bạn có thể làm như sau:

Tập lệnh shell (/server/loadpath/load.sh):

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

Thủ tục lưu trữ:

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

QUAN TRỌNG: Xác thực dữ liệu đầu vào để ngăn chặn bất kỳ việc nhập mã nào.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu trữ IPV6 và IPV4 trong MySql và cũng có thể đọc nó

  2. Điểm yếu của phương pháp xác thực người dùng này là gì?

  3. Làm thế nào để lưu trữ tên tệp trong cơ sở dữ liệu, với các thông tin khác trong khi tải hình ảnh lên máy chủ bằng PHP?

  4. Cách thêm thời gian vào giá trị ngày giờ trong MySQL

  5. truy vấn mysql - bài đăng trên blog và nhận xét có giới hạn