Menemukan sintaks yang tepat untuk membuat ini berfungsi:
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 )
Pikiran Anda--ini dilakukan dengan modul mysqldb python.
PERINGATAN
Satu-satunya masalah dengan solusi ini adalah karena alasan tertentu penyisipan massal saya hanya memasukkan 217 baris data pertama dari file saya. Ukuran file total saya adalah 19KB jadi saya tidak bisa membayangkan bahwa itu terlalu besar untuk buffer mysql... jadi apa yang memberi?
info selengkapnya
Juga, saya baru saja mencoba sintaks ini langsung di dalam msyql-server CLI dan berfungsi untuk semua 255 catatan. Jadi, jelas ada masalah dengan python, modul python mysqldb, atau koneksi mysql yang dibuat oleh modul mysqldb...
SELESAI
Saya HANYA menemukan masalahnya, itu tidak ada hubungannya dengan perintah load data local infile melainkan metode yang saya gunakan untuk mengonversi file .dbf asli saya menjadi .csv sebelum mencoba mengimpor .csv. Untuk beberapa alasan metode impor mysql berjalan pada .csv sebelum metode konversi .dbf ke .csv selesai -- mengakibatkan sebagian kumpulan data ditemukan dalam file .csv dan diimpor... maaf membuang waktu semua orang!