Tìm ra cú pháp thích hợp để làm cho điều này hoạt động:
sql = """LOAD DATA LOCAL INFILE %s INTO TABLE seriallog_dev
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\\n'
IGNORE 1 LINES
(FLEX_PN, FLEX_PLANT, FLEX_ORDID, FLEX_REV, CUST_PN, CUST_REV, SERIALID, @DTE, @LTME)
SET RECORDID = NULL,
TRANS_OCR = STR_TO_DATE(CONCAT(@DTE,'',@LTME), "%%Y%%m%%d%%H%%i%%s"),
CREATED = CURRENT_TIMESTAMP;"""
params = (file,)
self.db.query( sql, params )
Xin lưu ý bạn - điều này được thực hiện với mô-đun mysqldb của python.
CAVEAT
Vấn đề duy nhất với giải pháp này là vì lý do nào đó, phần chèn hàng loạt của tôi chỉ chèn 217 hàng dữ liệu đầu tiên từ tệp của tôi. Tổng kích thước tệp của tôi là 19KB vì vậy tôi không thể tưởng tượng rằng nó quá lớn đối với bộ đệm mysql ... vậy điều gì mang lại?
thông tin khác
Ngoài ra, tôi vừa thử cú pháp này trực tiếp trong msyql-server CLI và nó hoạt động với tất cả 255 bản ghi. Vì vậy, rõ ràng đó là một số vấn đề với python, mô-đun python mysqldb hoặc kết nối mysql mà mô-đun mysqldb tạo ra ...
XONG
Tôi CHỈ đã tìm ra vấn đề, nó không liên quan gì đến lệnh tải dữ liệu cục bộ trong tệp mà thay vào đó là phương pháp tôi đang sử dụng để chuyển đổi tệp .dbf ban đầu của tôi thành .csv trước khi cố gắng nhập .csv. Vì một số lý do mà phương thức nhập mysql đã chạy trên .csv trước khi phương thức chuyển đổi .dbf thành .csv hoàn tất - dẫn đến việc một phần dữ liệu được tìm thấy trong tệp .csv và được nhập ... xin lỗi đã làm mất thời gian của mọi người!