fabiez Posted March 21, 2014 Share Posted March 21, 2014 I'm trying to create a trigger that checks intries in a table. CREATE TRIGGER check_stored_stars BEFORE INSERT ON stored_stars FOR EACH ROW BEGIN IF NEW.user_id = OLD.user_id AND NEW.star_id = OLD.star_id ELSE INSERT INTO stored_stars(user_id, star_id) VALUES(NEW.user_id, NEW.star_id); END IF; END; But I get an error saying: #1363 - There is no OLD row in on INSERT trigger How do I solve this? Link to comment https://forums.phpfreaks.com/topic/287139-create-a-trigger-that-checks-intries-in-a-table/ Share on other sites More sharing options...
ginerjm Posted March 21, 2014 Share Posted March 21, 2014 Looks/sounds like an sql question, not something on a php forum. Link to comment https://forums.phpfreaks.com/topic/287139-create-a-trigger-that-checks-intries-in-a-table/#findComment-1473463 Share on other sites More sharing options...
kicken Posted March 21, 2014 Share Posted March 21, 2014 If you're trying to prevent duplicates on the user_id,star_id combo then just set a UNIQUE constraint on those columns. CREATE UNIQUE INDEX IX_UserStar ON stored_stars (user_id, star_id) The reason for the error is exactly as it says, when you are doing an INSERT query, there is only NEW data, not any OLD data. Link to comment https://forums.phpfreaks.com/topic/287139-create-a-trigger-that-checks-intries-in-a-table/#findComment-1473481 Share on other sites More sharing options...
fabiez Posted March 21, 2014 Author Share Posted March 21, 2014 thanks Link to comment https://forums.phpfreaks.com/topic/287139-create-a-trigger-that-checks-intries-in-a-table/#findComment-1473492 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.