0

I'm developing a Wordpress site. I'm trying to insert a new row into a table when new row with specific value in usermeta table is added. This is what I got for now:

DELIMITER |
CREATE TRIGGER user_sub AFTER INSERT ON wp_usermeta
FOR EACH ROW
BEGIN
IF meta_value='subscribe' THEN
INSERT INTO newsletter_user_list SET list_id = 1,user_id=NEW.user_id;
END IF;
END;
| 
DELIMITER ;

But this breaks the usermeta table. After new user register usermeta table is not populated.Thank you very much for any help because I have no experience with triggers.

3
  • Is this question about mysql? Sep 21, 2018 at 11:34
  • Yes, it is about mysql.
    – Ante Medic
    Sep 21, 2018 at 11:42
  • IF NEW.meta_value='subscribe' THEN. Without specifying NEW pseudotable a literal meta_value is considered a variable name. Such variable is not declared, so error occures and trigger fails.
    – Akina
    Sep 21, 2018 at 11:45

1 Answer 1

0

Thank you Akina!

DELIMITER |
CREATE TRIGGER user_sub AFTER INSERT ON wp_usermeta
FOR EACH ROW
BEGIN
IF NEW.meta_value='subscribe' THEN
INSERT INTO newsletter_user_list SET list_id = 1,user_id=NEW.user_id;
END IF;
END;
| 
DELIMITER ;

Not the answer you're looking for? Browse other questions tagged or ask your own question.