I have two tables. Posts
, Votes
. I have a column in the Posts
table named total_votes
. Also I have a trigger for updating it when user gives a vote to the post.
Here is my trigger:
delimiter //
CREATE TRIGGER total_votes AFTER INSERT ON Votes
FOR EACH ROW begin
update posts set total_votes = total_votes+new.value
where post.id = new.post_id;
end //
So I need to check the number of user reputation, that If they are more than 50, then the vote stores, else, the vote not store. how can I do that ?
Actually I can write this: BEFORE INSERT
If ((select reputation from users where id = new.user_id) < 50) then
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'your rep are low';
end if;
Now I have two problem, One: how can I use of that error (your rep are low) in my website ? (via php), and two: How can I deactivate total_votes
trigger (AFTER INSERT
) if the above condition was true
?