I created trigger on table PENDING
.
Pending table has 3 columns
- uniqueId
- duration
- maxDuration
I have another table COUNT
with 2 columns
- req_id
- total
Here is my trigger–
CREATE TRIGGER plus3second BEFORE INSERT
ON PENDING
FOR EACH ROW
BEGIN
DECLARE req_id varchar(25);
DECLARE total int(11);
DECLARE duration int(2);
SET req_id = SUBSTR(new.uniqueId, 1, 14);
Select total into total from COUNT where req_id = 'req_id';
IF total > 100 THEN
SET duration = new.duration + 3;
IF duration < new.maxDuration Then
SET new.duration = duration;
END IF;
END IF;
END
Trigger created successfully.
I fired these queries on COUNT and PENDING-
insert into COUNT values ('77711422099653',200);
insert into PENDING (uniqueId, duration, maxDuration) values ('77711422099653919893277163', 3, 20);
But trigger not working …Where is the problem ?
Best Answer
I made a few corrections
total
togiven_total
req_id
togiven_req_id
duration
togiven_duration
With these corrections, here is the new trigger:
What was wrong before? In your original trigger, you had
Select total into total from COUNT where req_id = 'req_id';
. That was looking for thereq_id
actually being equal to the string 'req_id'. That's why I made the other corrections, especially correction #2.Give it a Try !!!