Bonjour à tous,
J’ai actuellement un petit souci pour la mise en place d’un trigger sur une table.
Mon but est que pour chaque INSERT UPDATE sur une table, le champ xml_data soit analysé, et que chaque :
caractère %c3%a9 soit remplacé par é
caractère %c3%a8 soit remplacé par è
…
Lors de mes différentes tentatives, soit j’ai une erreur lors d’un update ou d’un insert liée à ce trigger.
Voici mes tentatives :
delimiter //
CREATE TRIGGER avantUpdateTrigger BEFORE UPDATE
ON events_calendars FOR EACH ROW
BEGIN
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a9 ›, ‹ é ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a8 ›, ‹ è ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a0 ›, ‹ à ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a7 ›, ‹ ç ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%aa ›, ‹ ê ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%b9 ›, ‹ ù ›) WHERE id = NEW.id;
END//
CREATE TRIGGER avantInsertTrigger BEFORE INSERT
ON events_calendars FOR EACH ROW
BEGIN
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a9 ›, ‹ é ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a8 ›, ‹ è ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a0 ›, ‹ à ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%a7 ›, ‹ ç ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%aa ›, ‹ ê ›) WHERE id = NEW.id;
UPDATE events_calendars SET xml_data = replace(xml_data , ‹ %c3%b9 ›, ‹ ù ›) WHERE id = NEW.id;
END//
delimiter ;
→ J’obtiens une erreur lors d’un update ou insert sur la table:
Can’t update table ‹ events_calendars › in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Je n’ai pas plus compris lorsque j’ai cherché sur des forum ou sur la documentation de MySQL
Je vous remercie d’avance pour votre aide.