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