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

MySQL - Indstil standardværdi for felt som en strengsammenkædningsfunktion

MySQL understøtter ikke beregnede kolonner eller udtryk i DEFAULT mulighed for en kolonnedefinition.

Du kan gøre dette i en trigger (MySQL 5.0 eller nyere påkrævet):

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

Du vil måske også oprette en lignende trigger BEFORE UPDATE .

Pas på NULL i fornavn og efternavn, fordi konkat af en NULL med en hvilken som helst anden streng producerer en NULL . Brug COALESCE() på hver kolonne eller på den sammenkædede streng efter behov.

rediger: Følgende eksempel angiver stage_name kun hvis det er NULL . Ellers kan du angive stage_name i din INSERT erklæring, og den vil blive bevaret.

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. Hvordan man bruger returværdier for en opgave i en anden opgave for en anden vært i ansible

  2. PostgreSQL-skemaer / navnerum med Django

  3. MySQL samtidighed, hvordan virker det og skal jeg håndtere det i min ansøgning

  4. TO_TIMESTAMP() Funktion i Oracle