[pgsql-jp: 36984] Re: 副問い合わせを利用したUPDATE
AOKI KAZUYUKI
aoki-kazuyuki @ nifty.com
2006年 4月 12日 (水) 23:04:35 JST
石田@苫小牧市 様
ありがとうございました。
下記のコードで無事に動作しました。
IDが解決できないので、
ターゲットのテーブル名をIDへそのまま定義することで動きました。
UPDATE tbl_true_data
SET stateprov = w.stateprov
, cityname = w.cityname
...
FROM tbl_web_data AS w
WHERE tbl_true_data.corporation_id = w.corporation_id
AND tbl_true_data.corporation_id = 777
しかし、両方のテーブルにUPDATEをイベントにして
トリガーとして実行したら見事にデットロックしてしまいました。
お互いに片方向のみ動作するように
トリガーを書くと言うのは無理なのでしょうね (^_^;)
==========================
旅行産業の情報システム支援
mode-A (モード・エー)
青木一之
http://mode-a.com
aoki-kazuyuki @ nifty.com
==========================
----- Original Message -----
From: "ISHIDA Akio" <iakio @ mono-space.net>
To: "PostgreSQL Japanese Mailing List" <pgsql-jp @ ml.postgresql.jp>
Sent: Wednesday, April 12, 2006 10:13 PM
Subject: [pgsql-jp: 36983] Re:副問い合わせを利用したUPDATE
> こんにちは。石田@苫小牧市です。
>
> 06/04/12 に AOKI KAZUYUKI<aoki-kazuyuki @ nifty.com> さんは書きました:
>> モード・エーの青木と申します。
>>
>> 副問い合わせを利用したUPDATE文を考えています。
>> もう少しスマートに書きたいのですが、
>> 何か良い方法はありますでしょうか?
>>
>> UPDATE tbl_true_data
>> SET
>> stateprov=(SELECT stateprov FROM tbl_web_data WHERE corporation_id =
>> 777),
>> cityname=(SELECT cityname FROM tbl_web_data WHERE corporation_id = 777),
>> addressline=(SELECT addressline FROM tbl_web_data WHERE corporation_id =
>> 777),
>> bldgroom=(SELECT bldgroom FROM tbl_web_data WHERE corporation_id = 777),
>> countryname=(SELECT countryname FROM tbl_web_data WHERE corporation_id =
>> 777),
>> WHERE corporation_id = 777
>>
>> 副問い合わせを1回の記述にしたいのですが、
>> 可能でしょうか?
>
> UPDATE文にはFROM句を指定できます。
> この例だとおそらくこんな感じです。
>
> UPDATE tbl_true_data
> SET stateprov = w.stateprov
> , cityname = w.cityname
> ...
> FROM tbl_web_data AS w
> WHERE corporation_id = w.corporation_id
> AND corporation_id = 777
>
>>
>> 以上
>>
>>
>>
>
>
> --
> ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.385 / Virus Database: 268.4.1/309 - Release Date: 2006/04/11
>
pgsql-jp メーリングリストの案内