SELECTの結果でUPDATEをかける(pgsql/mysql)

DB内で他のテーブルからSELECTした内容でUPDATEを行いたいときがある.
SELECTした内容をINSERTに使うINSERT~SELECT構文みたいなのもあるので,どうかなーと思ったら各DBMS毎に文法が違うのね…

PostgreSQLの場合
オデの日記@WEB系: postgresqlでSELECTした結果でUPDATEをかける
PostgreSQL/SQL/SELECT結果でUPDATE – yanor.net/wiki

UPDATE target_table
SET target_column = s.value
FROM (SELECT * FROM source_table) AS s
WHERE target_table.id = s.id

個人的にはSETとWHEREの間にFROMが入るのが直感的でない…と思う.

MySQLの場合
MySQL/SELECT結果でUPDATEする – 俺の基地
yoko_net Blog : 結合したSELECT結果でUPDATEするTips(for MySQL)

UPDATE target_table,source_table
SET target_table.taraget_column = source_table.source_column
WHERE target_table.id = source_table.id

個人的にはUPDATEの後に両方のテーブル名を並べるのがまぎらわしい…と思う.

ab(Apache Bench)でSSLサイトに繋げない

負荷試験をしたかったのでab(apache bench)を起動したのですが,SSL read failedと言われて終了してしまいます.
オレオレ証明書がいけないのかな?と思いましたが他のオレオレ証明書サーバでは問題ありません.
ググるとどうやら非Apacheなサーバ相手にはこの問題が発生する模様.
今回問題になってるのもpound相手です.同じ証明書を使ったApache相手には成功します.

Bug 49382 – ab says "SSL read failed"

2.2.1をダウンロードしてきて./configure –enable-ssl; makeした段階でsupport/ab を起動してみますが症状は一緒.
2.3.14-betaは今回の環境(CentOS5)では依存関係で使えず.

なんとか代替案はないものかしら.

ApacheBenchを使いたいけどApacheを入れるのがだるかったのでベンチマークツール書いた – かるぱねるらすたいる

こちらはperlで書かれたツール.
問題なく動いているようだが,過負荷な試験をするとdivision by zeroが出て終了してしまうことも…

JMeterという手もあるのだがな…

apacheをアップデートしたら起動しなくなった

CentOS5上にてApacheを使用.
yumでhttpdをupdate,restartしたら起動しない.

エラーメッセージは

[warn] module ssl_module is already loaded, skipping
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs

ああーSSLの設定がダブってますね多分.

このサーバはSSL設定を色々いじってたので/etc/httpd/conf.dの中で
(元の)ssl.conf → ssl.conf.original にリネーム
(新規)ssl_my_original.conf を設定
みたいなことをやっていたので,update時に新しく ssl.conf が作成されていたのでした.

update時には気をつけよう.