2008/08/04 (月)
2008-06-30:PostgreSQLとMySQLのUPDATE構文
あるテーブルに UPDATE かけたくて、しかし対象行の検索には別のテーブルを結合したいビューを使いたい、という場合のオハナシ。
PostgreSQL の場合、UPDATE 文に FROM 句が使えて、ここに WHERE 句で使いたいテーブル・ビューを記述できる。
例を書くと、
UPDATE table_name as t SET target_column_name = value FROM view_name as v WHERE t.where_column_name = v.where_column_name and v.search_column_name = search_value;
のような形。
が、同じことを MySQL でやろうとしたら、怒られた。MySQL では FROM 句が使えない。
MySQL の場合は単純に UPDATE のターゲットテーブルと併記すればよい。
UPDATE table_name as t, view_name as v SET target_column_name = value WHERE t.where_column_name = v.where_column_name and v.search_column_name = search_value;
SQL92 標準的にどうなのかは知りません。だれか教えてください。:-)
そんなことより、今日 MySQL のマニュアル読んでてびっくりしたのは、UPDATE 文にORDER BY 句が使えること。指定した順で更新されていく。
なんの意味があるんだろう?
やっぱり MySQL は変態だなぁ、と思った(誉めてます)。
comment2005/08/20 (土)
2004/01/09 (金)
2004-01-09:perl みんな忘れてる
オフィスで perl で PostgreSQL をいじる話題が出て、けっこうみんな perl を忘れている事件。
そして、やっぱ Ruby でしょ、とか PHP5 ってどうなのよ、といった話題になる。ありがちすぎ。
2003/07/26 (土)
2003-07-26:TomcatとPostgreSQL
とむ猫と遊ぼう、ということで、てもとのマシンに J2SE を入れて、tomcat41 を入れて、mod_jk2 を入れる。
PostgreSQL の JDBC ドライバが servlet から使えない。。。としばらく悩む。
どうも Tomcat の起動スクリプトから呼ばれる setclasspath.sh というのがCLASSPATH をぶっこわしてくれていたらしい。ここを修正したらシアワセになれた。