2017-02-13 5 views
1

私は誰かのために作成する自動化されたインベントリを持っています。値は正常に更新されていました。しかし、私が使用していたmysqlが更新に現れた新しい行を追加していないことに気付きました。私はこれを自分で動作させようとしましたが、これまでのところ運がありませんでした。誰かがこれがなぜ機能していないのか少し光を当てることができますか?メインテーブルは'product_list 'です新しい行がインポートされていない場合は、新しい行を追加して追加してください。CSV MYSQL

CREATE TEMPORARY TABLE temp_update_table (SKU VARCHAR(50), PRODUCT_NAME VARCHAR(255), QTY smallint(6), COMMENTS text); 

// Create Temporary Table 

LOAD DATA LOCAL INFILE '/home/useraccount/products.csv' INTO TABLE temp_update_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' (SKU, PRODUCT_NAME, QTY); 

// Insert CSV Contents into table 

UPDATE product_list INNER JOIN temp_update_table on temp_update_table.SKU = product_list.SKU SET product_list.QTY = temp_update_table.QTY; 

// Update Current Quantities to match new ones. 

INSERT INTO product_list(SKU, PRODUCT_NAME, QTY) SELECT NEW.SKU, NEW.PRODUCT_NAME, NEW.QTY FROM temp_update_table as NEW LEFT JOIN product_list as OLD ON OLD.SKU = NEW.SKU WHERE OLD.SKU IS NULL:" 

// If there are any new rows, add them (This is the line where the problem lies?) 

DROP TEMPORARY TABLE temp_update_table; 
// Remove Temp Table 

誰かが光を放つことができたら、それは壮大になります!

insert into product_list(SKU,PRODUCT_NAME,QTY) 
select SKU, PRODUCT_NAME, QTY FROM temp_update_table 
ON DUPLICATE KEY UPDATE QTY = values(QTY); 
愚かな質問には申し訳ありません

:私は一時テーブルをロードした後のような重複キーに使用して私の問題を解決するためにうまく管理の私は...

答えて

1

間違って物事を呼び出すように、任意のSQLエラーが...そこアレント!

関連する問題