MySQL non supporta colonne o espressioni calcolate nel DEFAULT opzione di una definizione di colonna.
Puoi farlo in un trigger (richiesto MySQL 5.0 o versioni successive):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
Potresti anche voler creare un trigger simile BEFORE UPDATE .
Fai attenzione a NULL in nome e cognome, perché concat di un NULL con qualsiasi altra stringa produce un NULL . Usa COALESCE() su ciascuna colonna o sulla stringa concatenata a seconda dei casi.
modifica: L'esempio seguente imposta stage_name solo se è NULL . Altrimenti puoi specificare il stage_name nel tuo INSERT dichiarazione e sarà conservata.
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