Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment remplir automatiquement un nom basé sur le prénom et le nom de famille dans mysql?

Vous pouvez créer un déclencheur BEFORE INSERT et un déclencheur BEFORE UPDATE pour définir le champ de nom sur la valeur de CONCAT_WS(' ', first_name, middle_name, last_name) comme suit... mais ne le faites pas. C'est une idée terrible. Ne stockez pas du tout la colonne de nom. Lorsque vous souhaitez sélectionner le nom, sélectionnez simplement CONCAT_WS(' ', first_name, middle_name, last_name) AS full_name.

Notez que CONCAT renverra null si l'une des valeurs que vous concaténez est nulle, vous voudrez donc probablement utiliser CONCAT_WS (avec séparateur) à la place - si une valeur de la liste est nulle, elle omettra simplement cette valeur et utilisera les autres.

Vos déclencheurs pourraient ressembler à ceci si vous décidiez de le faire :

 CREATE TRIGGER name_update BEFORE UPDATE ON member
    FOR EACH ROW
    BEGIN
        SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
    END;

 CREATE TRIGGER name_insert BEFORE INSERT ON member
    FOR EACH ROW
    BEGIN
        SET NEW.name = CONCAT_WS(' ', NEW.first_name, NEW.middle_name, NEW.last_name);
    END;

J'espère que cela aide.