0
我有一個表像發送此更新計數器觸發的PostgreSQL
-----------------------------------------------------------------------------------
id | notification_sent | times_notification_sent
-----------------------------------------------------------------------------------
4a1717a2-6e1e-4af6-aa34-8262899aa060 | t | 0
這裏通知是布爾字段和times_notification_sent爲int。我正在嘗試創建觸發器,當notification_sent從true更改爲false時,會將times_notification_sent遞增1。
我正在使用下面的函數和觸發器,但它不工作。
CREATE OR REPLACE FUNCTION update_sent_counter_for_watch() RETURNS TRIGGER
LANGUAGE plpgsql
AS $$ BEGIN
IF OLD.notification_sent IS TRUE AND NEW.notification_sent IS FALSE THEN
UPDATE "watch" SET "times_notification_sent" = "times_notification_sent" + 1 WHERE "id" = OLD."id";
END IF;
END;
$$;
CREATE TRIGGER "update_times_sent_counter" AFTER UPDATE OF "times_notification_sent" ON "public"."watch"
FOR EACH ROW
WHEN (OLD.notification_sent IS DISTINCT FROM NEW.notification_sent)
EXECUTE PROCEDURE "public"."update_sent_counter_for_watch"();
你們倆都是corr等。非常感謝您的幫助。 – nicholasnet
@帕特里克:謝謝,糾正 –