2013-01-02 23 views
-1

以下代碼是我在Navicat for Mysql中編寫的觸發器。插入部分工作正常,但爲了更新,我需要根據id更新特定的行數量。如何在更新sql查詢中編寫where子句。如何通過重複鍵在觸發器後給出何處condtion

insert into closingstockt(CLS_BSID,CLS_Qty,CLS_SQty,CLS_CDate) 
select BS_ID as CLS_BSID,BS_Qty as CLS_Qty,BSS_Qty as CLS_SQty,curdate() 
from barstockt 
where CLS_BSID=BS_ID 
on duplicate key update CLS_Qty=BS_Qty,CLS_SQty=BSS_Qty 

回答

0

ON DUPLICATE KEY UPDATE將更新數據庫中已存在的行。例如:

INSERT INTO table (field,field2) VALUES ('data1','data2') 
ON DUPLICATE KEY UPDATE lastupdate=NOW() 

編輯:我建議使用IF()

INSERT ... ON DUPLICATE KEY UPDATE with WHERE?

+0

我需要更新一行在基地的ID是一樣的。如下面的代碼,但在重複密鑰更新中不允許使用子句。 插入到closingstockt(CLS_BSID,CLS_Qty,CLS_SQty,CLS_CDate) 選擇BS_ID如CLS_BSID,BS_Qty如CLS_Qty,BSS_Qty如CLS_SQty,從上重複的密鑰更新barstockt CURDATE()CLS_Qty = BS_Qty,CLS_SQty = BSS_Qty其中CLS_BSID = BS_ID – ishwar

+0

我怎麼不知道如何給條件,所以你可以幫助該代碼 – ishwar

+0

我檢查鏈接,但我沒有找到實際上我在找什麼。 我需要根據兩個表中的id匹配更新所有字段。但我檢查上面的鏈接沒有檢查,如果id是相同的行只更新不是全部。 – ishwar

相關問題