Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have 4 tables:

event: event_id(p.k) | uid | circle_id(f.k)

activity: uid | performed_activity_id(f.k->event_id) | activity_type_id

follow: follower_id | circle_id(f.k)

notification: sender_id | receiver_id(follower_id of follow table)

I want to create a trigger which inserts values into the activity and notification tables whenever there is an entry for event table.
I am able to insert values into the activity table because it is directly connected to event table.
However, I am not able to insert into the notification table because the receiver_id field in the notification table is coming from the follow table which is connected to event table by circle_id.

Here I am using select in trigger which is actually wrong.

DROP TRIGGER IF EXISTS  `InsertToActivity` ;
CREATE TRIGGER `InsertToActivity` AFTER INSERT ON  `event` 
begin INSERT INTO activity( uid, performed_activity_id, activity_type_id ) VALUES (new.uid, new.event_id,  '1');
select follower_id from folow where circle_id=new.circle_id;
insert into notification_table (sender_id,object_id,receiver_id) values (new.uid,new.event_id,new.follower_id);

Is it good way to do this type of work using TRIGGERS.?

share|improve this question
Is there a object_id column in notification table? – ypercubeᵀᴹ Mar 2 '13 at 9:41
yes there is object_id column which will take event_id – Harjeet Jadeja Mar 2 '13 at 10:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.