2017-04-07 51 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行受影响。

非常感谢,斯坦尼斯拉夫