MySQL no admite columnas calculadas o expresiones en el DEFAULT opción de una definición de columna.
Puede hacer esto en un activador (se requiere MySQL 5.0 o superior):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
También puede crear un activador similar BEFORE UPDATE .
Cuidado con NULL en nombre y apellido, porque concat de un NULL con cualquier otra cadena produce un NULL . Usa COALESCE() en cada columna o en la cadena concatenada según corresponda.
editar: El siguiente ejemplo establece stage_name solo si es NULL . De lo contrario, puede especificar el stage_name en tu INSERT declaración, y se conservará.
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