Descubrí la sintaxis adecuada para que esto funcione:
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 )
Eso sí, esto se hace con el módulo mysqldb de python.
ADVERTENCIA
El único problema con esta solución es que, por alguna razón, mi inserción masiva solo inserta las primeras 217 filas de datos de mi archivo. El tamaño total de mi archivo es de 19 KB, así que no puedo imaginar que sea demasiado grande para los búferes de mysql... entonces, ¿qué ocurre?
más información
Además, acabo de probar esta sintaxis directamente dentro de la CLI del servidor msyql y funciona para los 255 registros. Entonces, obviamente es un problema con python, el módulo mysqldb de python, o la conexión mysql que hace el módulo mysqldb...
HECHO
SOLO descubrí el problema, no tenía nada que ver con el comando de archivo local de carga de datos, sino con el método que estaba usando para convertir mi archivo .dbf original en .csv antes de intentar importar el .csv. Por alguna razón, el método de importación de mysql se estaba ejecutando en .csv antes de que terminara el método de conversión de .dbf a .csv, lo que resultó en que se encontrara un conjunto de datos parcial en el archivo .csv y se importara... ¡perdón por hacer perder el tiempo a todos!