MySQL nepodporuje počítané sloupce nebo výrazy v DEFAULT
možnost definice sloupce.
Můžete to udělat ve spouštěči (vyžaduje se MySQL 5.0 nebo vyšší):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
Můžete také chtít vytvořit podobný spouštěč BEFORE UPDATE
.
Dejte si pozor na NULL
ve jménu a příjmení, protože spojení NULL
s jakýmkoli jiným řetězcem vytvoří NULL
. Použijte COALESCE()
na každý sloupec nebo podle potřeby na zřetězený řetězec.
upravit: Následující příklad nastaví stage_name
pouze pokud je NULL
. Jinak můžete zadat stage_name
ve vašem INSERT
prohlášení a bude zachováno.
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