2017-04-07 8 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

P.S.複数行の1列の値を変更すると、正常に動作します。クエリの実行

+1

どのdbmsを使用していますか?すべてのdbms製品がこれらの "複数列の割り当て"と "行タイプ"拡張をサポートするわけではありません。 – jarlh

+0

私は、absoluteDBでembended SQLエンジンを使用していますので、いくつかの制限があります。だから、SQLコードはあなたにはOKのようですか?それが大丈夫なら、これを読んでいる人にとっては役に立つかもしれません。 –

+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秒] [OK]をクリックします。 [7.4.2017 11:33:17] 3行が影響を受けました。

ありがとう、StanislavL

関連する問題