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 12, 2013 09:27AM

Salut,
si je ne fais pas erreur, ça devrait pouvoir se faire simplement sans procédure : j'ai repris la proposition évoquée et ajouté les modificaitons avec des commentaires qui devraient être explicites :

CREATE TRIGGER `action_AINS` BEFORE INSERT ON action FOR EACH ROW
BEGIN
  IF(NEW.act_action_origine IS NULL) THEN
    -- On récupère la valeur de la dernière clé primaire de la
    -- table, si la table est vide, on partira de 1 par défaut;
    SELECT IFNULL(MAX(act_id), 0)
    INTO @p_act_id
    FROM action;
    -- On incrémente la valeur récupérée
    SET @p_act_id = @p_act_id + 1;
    -- On assigne la valeur obtenue à la nouvelle clé primaire et à l'autre colonne
    SET NEW.act_id = @p_act_id;
    SET NEW.act_action_origine = @p_act_id;
  END IF;
END

______________________________________________________________
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/12/2013 09:27AM by Jean Molliné.

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Récupération d'un numéro auto incrémenté dans un trigger
1656
December 12, 2013 09:27AM


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.