sql >> Database >  >> RDS >> Mysql

MySQL - Stel de standaardwaarde voor het veld in als een functie voor het samenvoegen van tekenreeksen

MySQL ondersteunt geen berekende kolommen of uitdrukkingen in de DEFAULT optie van een kolomdefinitie.

U kunt dit doen in een trigger (MySQL 5.0 of hoger vereist):

CREATE TRIGGER format_stage_name 
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
  SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END

U kunt ook een soortgelijke trigger maken BEFORE UPDATE .

Pas op voor NULL in voornaam en achternaam, omdat concat van een NULL met een andere string produceert een NULL . Gebruik COALESCE() op elke kolom of op de aaneengeschakelde tekenreeks, naargelang het geval.

bewerken: Het volgende voorbeeld stelt stage_name . in alleen als het NULL is . Anders kunt u de stage_name . opgeven in uw INSERT statement, en het blijft behouden.

CREATE TRIGGER format_stage_name 
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
  IF (NEW.stage_name IS NULL) THEN
    SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
  END IF;
END


  1. Mysql-databaseontwerp voor meerdere adressen van klanten en standaardadres

  2. dubbele lege regel ingevoerd in mysql bij het uploaden van bestanden

  3. Hoe de Rand-functie te gebruiken in combinatie met Union in MySQL

  4. MYSQL:een tekenreeks converteren naar een maand (getal)