これを機能させるための適切な構文を理解しました:
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 )
気をつけてください-これはPythonのmysqldbモジュールで行われます。
警告
このソリューションの唯一の問題は、何らかの理由で、一括挿入ではファイルの最初の217行のデータしか挿入されないことです。私の合計ファイルサイズは19KBなので、mysqlバッファには大きすぎるとは想像できません...では、何が得られますか?
詳細strong>
また、この構文をmsyql-server CLI内で直接試したところ、255レコードすべてで機能します。したがって、明らかに、Python、Python mysqldbモジュール、またはmysqldbモジュールが作成するmysql接続に問題があります...
完了
私は問題を理解しただけで、load data local infileコマンドとは関係がなく、.csvをインポートする前に元の.dbfファイルを.csvに変換するために使用していた方法とは関係ありませんでした。何らかの理由で、.dbfから.csvへの変換メソッドが終了する前にmysqlインポートメソッドが.csvで実行されていたため、.csvファイルで部分的なデータセットが検出されてインポートされました...皆さんの時間を無駄にして申し訳ありません!