Rows are repeating by the trigger function

From: Kiran <bangalore(dot)kiran(at)gmail(dot)com>
To: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Rows are repeating by the trigger function
Date: 2016-10-30 09:31:43
Message-ID: CAJfd1U4rNFxjrTxZ-BjPMtAoyXTCgo3j6Pa4_8zj0xT4O6Q5Tw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Dear Folks,

I have a table *cf_question *with 31 rows.
I want to insert/update another table *cf_user_question_link* when
cf_question table is inserted/updated with row(s).
I have written trigger function for this as follows.

CREATE FUNCTION user_question_link() RETURNS trigger AS
$user_question_link$
begin
SET search_path TO monolith;
INSERT INTO
cf_user_question_link(cf_user_id,cf_question_id)
VALUES(NEW.user_id,NEW.cf_question_id);
RETURN NEW;
end;
$user_question_link$
LANGUAGE plpgsql
COST 100;

/* Call the trigger function */

CREATE TRIGGER insert_user_question_link AFTER INSERT OR UPDATE
ON monolith.cf_question
FOR EACH ROW EXECUTE PROCEDURE user_question_link();

Problem: The *cf_user_question_link* gets inserted with 94 rows instead of
31 rows. The 31 rows are repeated 3 times
I tried dropping the trigger function and recreating it
but with the same 94 rows in the table.

It would be great if any from the forum point to me where I am doing wrong.

regards
Kiran

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Evan Martin 2016-10-30 09:45:51 Way to quickly detect if database tables/columns/etc. were modified?
Previous Message Samuel Williams 2016-10-30 09:19:06 Re: initdb createuser commands