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