我有两列的csv,col1是条形码,col2是库存数量。
我有3张桌子。 表1:product_option_value 字段:product_option_value_id,product_option_id,product_id,option_id,option_value_id,数量,减法,价格,price_prefix,积分,points_prefix,重量,weight_prefix
表2:product_option_newvalue 字段:product_id,product_option_value_id,sku,upc
我正在尝试使用CSV文件中的sku和数量来更新表product_option_value的QUANTITY字段,我遇到麻烦的部分是我必须使用product_option_newvalue表中的product_option_value_id来更新product_option_value中的QUANTITY字段,我如何在两者之间引用?
这就是我所拥有的。它不起作用。
CREATE TABLE oc_product_import LIKE oc_product_option_value;
LOAD DATA INFILE '/var/lib/mysql-files/out.csv'
INTO TABLE oc_product_import
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
(sku, quantity);
UPDATE oc_product_option_value AS R
INNER JOIN oc_product_import AS P
ON R.product_option_value_id = P.product_option_value_id
SET R.quantity = P.sku;
DROP TABLE product_import;"
编辑:我的问题似乎是条形码仅存储在product_option_newvalue中,并且只能通过引用两个表中的product_option_value_id链接到数量,以更新product_option_value表中的数量。
EDIT2:这是对我有用的类似代码。但这不必引用我正在两个表中使用的PRODUCT_OPTION_VALUE_ID问题,因为条形码包含在产品表中,而不是引用中的其他表
DROP TABLE IF EXISTS oc_product_import;
CREATE TABLE oc_product_import LIKE oc_product
LOAD DATA INFILE '/var/lib/mysql-files/out.csv'
INTO TABLE oc_product_import
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY ';'
(sku, quantity);
UPDATE oc_product AS R
INNER JOIN oc_product_import AS P
ON R.sku = P.sku
SET R.quantity = P.quantity;
DROP TABLE oc_product_import;"
答案 0 :(得分:1)
我建议使用MySQL Workbench。这不是最好的方法,但绝对可以简化此类情况的处理。
设置完成后,您可以右键单击表格并选择table data import wizard
,然后以这种方式手动添加csv文件。
如果您对此有任何错误,请通知我。
此外,如果您使用的是Mac,则只需在终端中brew cask install mysqlworkbench
。