現在、LOAD DATA LOCAL INFILE
を正常に使用しています。通常はREPLACE
です。しかし、私は現在、同じコマンドを使用してCSVファイルをテーブルにロードしようとしていますが、特定のカラムだけを置き換えようとしています。例えば特定の列のLOAD DATA INFILE REPLACE
、テーブルには、現在のようになります。
ID
と
date
は主キーです
ID date num1 num2
01 1/1/2017 100 200
01 1/2/2017 101 201
01 1/3/2017 102 202
。
私は類似したCSVを持っていますが、カラムにはID, date, num1
しかありません。私はその新しいCSVをテーブルにロードしたいが、何かを維持するにはnum2
です。
this postあたりの私の現在のコード:私はすべての列を交換していたときに
LOAD DATA LOCAL INFILE mycsv.csv
REPLACE INTO TABLE mytable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(ID, date, num1)
は再び、私のコードは完璧に動作しますが、私は唯一の選択列を交換しようとすると、それはNULL値を持つ他の列を埋めます。同様の投稿(私が参照したようなもの)は役に立たなかった。
これはPython固有の問題かどうかわかりませんが、MySQLdb
を使用してデータベースに接続しています。私はlocal_infile
パラメータに精通しています。 MySQLバージョン5.6.33。