0
INSERT INTO min_product ( shopid, productid , outward ) 
SELECT shopid, productid , outward 
FROM main_product 
WHERE shopid= '51' 
    ON DUPLICATE KEY UPDATE outward  = ( SELECT sum(outward)  
                                         FROM main_product WHERE shopid= '51' )

main_product テーブル

productid outward shopid
    333      2      44//present
    343      4      44//present
    353      5      44//present
    363      1      44//present
    373      2      44//not present

min_product テーブル

productid outward shopid

333      1      44
343      1      44
353      1      44
363      1      44

問題は、新しい行が挿入されるのではなく、重複する行で更新されないことですか? クエリの問題は何ですかON DUPLICATE KEY UPDATE

4

1 に答える 1

0

データベースで重複行の挿入が許可されている場合、テーブルが正しく定義されていません-更新は、UNIQUEインデックスまたはPRIMARYKEYの重複が挿入された場合にのみ実行されます

INSERT ... ON DUPLICATEKEYUPDATE構文

于 2012-11-10T11:42:18.680 に答える