APIでデータをダウンロードをし、そのデータをDBに格納する際に現在、
INSERT INTO `sample` (a, b, c) VALUES('1','1','1') ON DUPLICATE KEY UPDATE a=a+1
(データが存在しない場合は挿入し、存在する場合はカラム「a」に1を足す)
として、データの数だけforでデータを回しています。
しかし一度に挿入したいデータ数が数万行の場合もあり、処理に時間が掛かるため、一度取得したデータをCSVなどでダウンロードしてBULK INSERTで挿入をしたら早くできるのでは思ったのですが、
BULK INSERT `sample`
FROM ‘ファイルのパス’
WITH (FIELDTERMINATOR = ‘区切り文字’,
ROWTERMINATOR = ‘改行文字列’
)
この場合、挿入は行えるものの、重複したデータが存在する場合のUPDATEが行えませんでした。
「大量のSQLを処理+重複するデータは上書き」できる方法が御座いましたらご教授頂けますと幸いです。
どうぞよろしくお願い致します。
コメント(0件)