MYSQL ne Peut pas mettre à jour le tableau en fonction stockée/déclencheur car il est déjà utilisé par une déclaration qui a invoqué cette fonction stockée/trigger

Je reçois cette erreur:
"Impossible de mettre à jour la table "wp_posts' en fonction stockée/déclencheur car il est déjà utilisé par une déclaration qui a invoqué cette fonction stockée/trigger"

Lors de Thème insère un enregistrement dans la WP_posts table, j'aimerais le déclencheur afin de déterminer si le nouvel enregistrement inséré a post_title (column) = 'scheduled_subscription_end_of_prepaid_term' (field data). Si c'est le cas, je voudrais le déclencheur pour en extraire une ID de new.post_content (colonne/données dans la nouvelle ligne insérée).

Une fois que l'ID est extrait, j'aimerais mettre à jour l'ID. L'ID est différent de l'ID de la nouvelle ligne insérée.

Quelqu'un peut-il me dire ce que je fais mal?

delimiter //
create TRIGGER DB.Cancel
before INSERT ON DB.wp_posts FOR EACH ROW

BEGIN

DECLARE updateid bigint;
Declare variable longtext;
declare variable2 longtext;

IF NEW.post_title = 'scheduled_subscription_end_of_prepaid_term' then

set updateid := NEW.id;
set variable := RIGHT(new.post_content, LOCATE(":", new.post_content));
set variable2 :=  LEFT(variable, LOCATE("2052", variable)-2);

update db.wp_posts
set post_status="wc-cancelled"
where id=variable2 and post_status='wc-processing';

end if;
END//
  • Le message d'erreur est clair, vous ne pouvez pas mettre à jour la même table où le déclencheur est arriver exécuté.
  • Quel est le point de set updateid := NEW.id;?
InformationsquelleAutor ido | 2015-05-15