2017-04-07 45 views
0

我試圖一次更新2條記錄的2列中的值。一次更新幾條記錄的數值

INSERT .... ON DUPLICATE ... UPDATE ...不起作用。

我已閱讀關於主題的帖子,但該解決方案對我無效,所以這是我的問題。我哪裏錯了?

代碼:

[7.4.2017 10:21:07] Executing Query: 

UPDATE sales 
    SET (ind,otst) = CASE id 
        WHEN 7795 THEN (759900,2.2) 
        WHEN 7799 THEN (779900,5) 
        ELSE (ind,otst) 
        END 
WHERE id IN(7795, 7799) and recNo>1; 

錯誤:

[7.4.2017 10:21:09] Value is Null - Native error: 30359

附:當我更改多行中單列中的值時,它工作正常。

+1

您使用哪個dbms?並非所有的dbms產品都支持這些「多列分配」和「行類型」擴展。 – jarlh

+0

我在absoluteDB中使用了embedded SQL引擎,因此可能會有一些限制。所以SQL代碼對你來說似乎可以嗎?如果沒關係,對於閱讀此內容的其他人來說可能是有用的。 –

+0

爲什麼不能調用SET ind = CASE ...,otst = CASE ...? – StanislavL

回答

0

[2017年7月4日11點33分17秒]執行查詢:

UPDATE sales 
    SET ind = CASE id 
    WHEN 7795 THEN 759900 
    WHEN 7799 THEN 779900 
    ELSE ind END, 
    otst = case id 
    WHEN 7795 THEN 99 
    WHEN 7799 THEN 77 
    ELSE otst END 
WHERE id IN(7795, 7799) and recNo>1; 

[2017年7月4日11點33分17秒]好。 [7.4.2017 11:33:17] 3行受影響。

非常感謝,斯坦尼斯拉夫

相關問題