sql >> Database teknologi >  >> RDS >> Mysql

Hvordan udfylder man automatisk et navn baseret på for- og efternavn i mysql?

Du kan oprette en FØR INSERT-trigger og en FØR OPDATERING-trigger for at indstille navnefeltet til værdien CONCAT_WS(' ', fornavn, mellemnavn, efternavn) som følger... men gør det ikke. Det er en frygtelig idé. Gem slet ikke navnekolonnen. Når du vil vælge navnet, skal du blot vælge CONCAT_WS(' ', fornavn, mellemnavn, efternavn) AS fuldt_navn.

Bemærk, at CONCAT vil returnere null, hvis nogen af ​​de værdier, du sammensætter, er null, så du vil sandsynligvis bruge CONCAT_WS (med separator) i stedet - hvis en værdi på listen er null, vil den bare udelade den værdi og bruge de resterende.

Dine triggere kan se sådan ud, hvis du beslutter dig for at gøre det:

 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;

Jeg håber, det hjælper.




  1. PostgreSQL på Corda enterprise node kaster relationsfejl

  2. indtastede formulardata gemmes ikke i mysql db?

  3. Er det muligt at oprette Oracle Database-objekttyper inde i PL/SQL?

  4. java.lang.IllegalStateException:Forsøg på at udføre en operation på en lukket EntityManagerFactory