2014-03-06 107 views
0

我正在尝试更新psql数据库中的一堆行,并且希望在可能的情况下在一个生成的sql语句中执行此操作。我能够生成类似于此批插入语句:PSQL批量更新声明

INSERT INTO my_table (col1, col2, col3) 
VALUES (v11, v12, v13), (v21, v22, v23), ... 

但是我不知道如何使用更新语句做到这一点,而不是。我可以为我想更新的每一行做一条SQL语句,但这似乎没有必要,并且比只有一条语句更慢。

P.S.所有行有一个ID列,所以我可以通过

回答

0

Near Bottom of Page

我能找到在上面的链接答案中引用它们。看起来类似于

UPDATE my_table 
    SET x = case 
      when y = '1' then '1.1' 
      when y = '2' then '1.2' 
      end 
WHERE y='1' OR y='2';