sql >> Databáze >  >> RDS >> Mysql

Jak automaticky vyplnit jméno na základě jména a příjmení v mysql?

Můžete vytvořit PŘED INSERT trigger a BEFORE UPDATE trigger nastavit pole jména na hodnotu CONCAT_WS(' ', jméno, prostřední_jméno, příjmení) následovně... ale nedělejte to. Je to hrozná představa. Sloupec názvu vůbec neukládejte. Když chcete vybrat jméno, stačí vybrat CONCAT_WS(' ', jméno, prostřední_jméno, příjmení) JAKO celé jméno.

Všimněte si, že CONCAT vrátí hodnotu null, pokud je některá z hodnot, které spojujete, null, takže pravděpodobně budete chtít místo toho použít CONCAT_WS (s oddělovačem) - pokud je některá hodnota v seznamu null, pouze tuto hodnotu vynechá a použije zbývající.

Vaše spouštěče mohou vypadat nějak takto, pokud jste se to rozhodli:

 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;

Doufám, že to pomůže.




  1. převod sql server rowversion na long nebo ulong?

  2. při vložení perského znaku do Oracle db vidím otazník

  3. MySQL:Jak dosáhnout zamykání transakcí na úrovni řádků namísto zamykání tabulky

  4. Jak používat výčty v Oracle?