Descobri a sintaxe adequada para fazer isso funcionar:
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 )
Lembre-se - isso é feito com o módulo mysqldb do python.
AVISO
O único problema com esta solução é que, por algum motivo, minha inserção em massa insere apenas as primeiras 217 linhas de dados do meu arquivo. Meu tamanho total de arquivo é de 19 KB, então não posso imaginar que seja muito grande para os buffers do mysql ... então o que dá?
mais informações
Além disso, acabei de tentar essa sintaxe diretamente na CLI do msyql-server e funciona para todos os 255 registros. Então, obviamente, é algum problema com o python, o módulo python mysqldb ou a conexão mysql que o módulo mysqldb faz ...
CONCLUÍDO
Acabei de descobrir o problema, não tinha nada a ver com o comando load data local infile, mas sim com o método que eu estava usando para converter meu arquivo .dbf original para o .csv antes de tentar importar o .csv. Por alguma razão o método de importação do mysql estava rodando no .csv antes do método de conversão de .dbf para .csv terminar -- resultando em um conjunto de dados parcial sendo encontrado no arquivo .csv e importado... desculpe perder o tempo de todos!