De juiste syntaxis bedacht om dit te laten werken:
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 )
Let wel:dit wordt gedaan met de mysqldb-module van python.
WAARSCHUWING
Het enige probleem met deze oplossing is dat om de een of andere reden mijn bulkinsert alleen de eerste 217 rijen met gegevens uit mijn bestand invoegt. Mijn totale bestandsgrootte is 19 KB, dus ik kan me niet voorstellen dat het te groot is voor de mysql-buffers... dus wat geeft het?
meer info
Ook heb ik deze syntaxis zojuist rechtstreeks in de msyql-server CLI geprobeerd en het werkt voor alle 255 records. Het is dus duidelijk een probleem met python, de python mysqldb-module, of de mysql-verbinding die de mysqldb-module maakt...
GEREED
Ik heb het probleem NET ontdekt, het had niets te maken met de opdracht load data local infile, maar eerder met de methode die ik gebruikte om mijn originele .dbf-bestand naar het .csv-bestand te converteren voordat ik probeerde het .csv-bestand te importeren. Om de een of andere reden werd de mysql-importmethode uitgevoerd op de .csv voordat de conversiemethode van .dbf naar .csv was voltooid -- resulterend in een gedeeltelijke dataset die in het .csv-bestand werd gevonden en geïmporteerd... sorry voor het verspillen van ieders tijd!