O MySQL não suporta colunas ou expressões computadas no
DEFAULT
opção de uma definição de coluna. Você pode fazer isso em um gatilho (necessário MySQL 5.0 ou superior):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
Você também pode criar um gatilho semelhante
BEFORE UPDATE
. Cuidado com
NULL
em nome próprio e sobrenome, porque concat de um NULL
com qualquer outra string produz um NULL
. Use COALESCE()
em cada coluna ou na string concatenada conforme apropriado. editar: O exemplo a seguir define
stage_name
somente se for NULL
. Caso contrário, você pode especificar o stage_name
em seu INSERT
declaração, e ela será preservada. 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