7

derbyは条件文[IF]をサポートしていないようです。どうやって書くの?

if exists (select 1 from customers where name='somename') 
    update customers ...
else 
    insert into customers ...

ダービーで?Derbyにはmysqlの「replaceinto」もありません。

注:私はmysqlのユニットテストの代わりにderbyを使用しています[つまり、本番環境ではmysqlを使用し、unit-testではderbyを使用します]。

4

2 に答える 2

2

http://db.apache.org/derby/docs/10.2/ref/rrefcasenullif.html#rrefcasenullifはどうですか?

   CASE
      WHEN 1 = 2 THEN 3
      WHEN 4 = 5 THEN 6
      ELSE 7
   END

だから多分あなたは次のようなことを試すことができます:

CASE
 WHEN  select 1 from customers where name='somename' = 1 THEN update...
ELSE  insert...
END

それがうまくいくかどうかはわかりませんが、それは始まりのようです。幸運を!

編集:これらのいくつかを試した後...これが本当にあなたを助けるかどうかはわかりません。SELECTとINSERTを切り替えることができないようです。それはどちらか一方である必要があり、CASEは内部に入ります。あなたがやりたいことは可能かもしれないし不可能かもしれない...

于 2011-06-23T18:45:59.167 に答える