UPDATE
投稿日: 2009-01-27 /
カテゴリー:job
違うDBを並列で使うのでかなり混乱します。別テーブルのデータを持ってきてupdateしたかっただけなんですが、DBによってだいぶ書き方が違うのです。嫌すぎる。絶対忘れると思うのでメモ。
/* MySQL(4.0.4以降) */ UPDATE items, month SET items.price1 = month.price1, items.price2 = month.price2 WHERE items.id = month.id; AND items.price1 >= 1000; /* SQL Server */ UPDATE items SET items.price1 = month.price1, items.price2 = month.price2 FROM items INNER JOIN month ON items.id=month.id WHERE items.price1 >= 1000; /* Oracle */ UPDATE items SET (price1, price2) = (SELECT price1, price2 FROM items, month WHERE itemsid = month.id) WHERE items.price1 >= 1000;