MySQL stöder inte beräknade kolumner eller uttryck i DEFAULT alternativet för en kolumndefinition.
Du kan göra detta i en trigger (MySQL 5.0 eller senare krävs):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
Du kanske också vill skapa en liknande trigger BEFORE UPDATE .
Se upp för NULL i förnamn och efternamn, eftersom konkat av en NULL med vilken annan sträng som helst ger en NULL . Använd COALESCE() på varje kolumn eller på den sammanlänkade strängen beroende på vad som är lämpligt.
redigera: Följande exempel anger stage_name bara om det är NULL . Annars kan du ange stage_name i din INSERT uttalande, och det kommer att bevaras.
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