[pgsql] 更新可能なビューで件数取得できない
[環境] PostgreSQL 7.4.5 on i686-pc-linux-gnu
Pgsqlでビューを作成して、Ruleで更新可能なViewにしてるんだけど、Update後の件数が取得できない。
Rule : upd
Rule : upd_pass
Ruleを二段階にしているのはわけがあって、
なんかいい手立てはないものかなあ。
PgAdminで実行しても同じ結果なので、Pgsql内での問題だと思う。
"Nothing"だからしょうがないのかなあ。
ところが突然解決方法発見。
Rule : upd を
ああ、よかった。
Pgsqlでビューを作成して、Ruleで更新可能なViewにしてるんだけど、Update後の件数が取得できない。
Rule : upd
CREATE OR REPLACE RULE upd AS
ON UPDATE TO v_user DO INSTEAD NOTHING;
Rule : upd_pass
CREATE OR REPLACE RULE upd_pass AS
ON UPDATE TO v_user DO INSTEAD
UPDATE v_user SET pass = new.pass,
updcd = old.userid::text::character varying,
updymd = 'now'::text::timestamp(6) with time zone
WHERE t_user.userid = old.userid;
Ruleを二段階にしているのはわけがあって、
You need an unconditional ON UPDATE DO INSTEAD rule.というエラーが出ちゃうのでその回避のためなんだけど、これをすると今度は更新件数が取得できなくなっちゃいました。
なんかいい手立てはないものかなあ。
PgAdminで実行しても同じ結果なので、Pgsql内での問題だと思う。
"Nothing"だからしょうがないのかなあ。
ところが突然解決方法発見。
Rule : upd を
CREATE OR REPLACE RULE upd ASと、"INSTEAD"をのぞいたらうまくいくようになりました。
ON UPDATE TO v_user DO NOTHING;
ああ、よかった。
コメント