MySQL Forums
Forum List  »  French

Re: Récupération d'un numéro auto incrémenté dans un trigger
Posted by: Jean Molliné
Date: December 09, 2013 11:40PM

Salut,
dans la mesure où c'est une insertion, des valeurs sont déjà disponibles dans la requête d'insertion, et ça fonctionnera probablemet mieux en faisant BEFORE INSERT en lieu et place d'un AFTER INSERT. Le trigger deviendrait alors :

CREATE TRIGGER `action_AINS`
  BEFORE INSERT ON `action`
  FOR EACH ROW
BEGIN
  IF(NEW.act_action_origine IS NULL) THEN
    SET NEW.act_action_origine = NEW.act_id;
  END IF;
END

Ceci étant, d'abord je n'ai pas testé, ensuite, je m'interroge sur l'intéret de la chose. Dans la mesure où on sait d'ores et déjà que si act_action_origin vaut NULL, il doit prendre la même valeur que act_id, c'est un peu comme les posts d'un forum : si je n'ai pas l'identifiant du post d'origine, je sais que c'est obligatoirement un premier post dans un sujet, les réponses successives prenant l'identifiant du post auquel est fait la réponse. Donc cette colonne pourrait tout aussi bien rester NULL.

______________________________________________________________
Une question bien formulée, c'est un problème bien compris : ça représente déjà les 3/4 de la réponse ;)



Edited 1 time(s). Last edit at 12/09/2013 11:41PM by Jean Molliné.

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Récupération d'un numéro auto incrémenté dans un trigger
1751
December 09, 2013 11:40PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.