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