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

mysql tải dữ liệu cục bộ các vấn đề cú pháp trong tệp tin với các trường đã đặt

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!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong MySQL Overhead có nghĩa là gì, điều gì không tốt về nó và cách khắc phục nó?

  2. Cách tạo thủ tục lưu trữ trong MySQL

  3. Thư mục mysqld_safe '/ var / run / mysqld' cho tệp ổ cắm UNIX không tồn tại

  4. Phương pháp hay nhất cho hệ thống lập phiên bản dữ liệu mysql

  5. Chỉ mục duy nhất của MySQL theo nhiều trường