0
こんにちは私はこのトリガ関数を作成して、更新の影響を受ける行の数を数えました。更新回数をカウントする
create table smt (
id serial primary key,
num int
)
CREATE OR REPLACE FUNCTION count_updated()
RETURNS trigger
LANGUAGE 'plpgsql'
AS $BODY$
DECLARE
n int;
BEGIN
IF(TG_OP = 'UPDATE') THEN
get diagnostics n = row_count;
insert into smt (num) values (n);
return null;
END IF;
END;
$BODY$;
CREATE TRIGGER count_updt
AFTER UPDATE ON test
FOR EACH ROW EXECUTE PROCEDURE count_updated();
は私がやりたいことはGET DIAGNOSTICS
を使用してsmt
にtest
の更新された行の数を格納しているが、私はSMTテーブルの内容を読んだとき、ROW_COUNTをストックするために予約されているフィールドがした後も0であります更新。 あなたはイン・ライトのアイディアがあれば教えてください。 コード通り。
[アップデート数を数える](https://stackoverflow.com/questions/47019137/count-number-of-updates)と非常に似ています。編集する。 – lad2025
どうして 'pt_all_tablesからn_tup_updを選択するのですか?relname = 'test''?なぜあなたはそれをやっているのですか?..ただ更新に関する診断を取得する - なぜトリガをかけ、別の場所に値を保存し、それを選択するのですか? –
@Vao Tsunあなたの答えをありがとう。 –