MySQL unterstützt keine berechneten Spalten oder Ausdrücke in DEFAULT
Option einer Spaltendefinition.
Sie können dies in einem Trigger tun (MySQL 5.0 oder höher erforderlich):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
Sie können auch einen ähnlichen Trigger BEFORE UPDATE
erstellen .
Achten Sie auf NULL
in Vor- und Nachnamen, weil Konkat von NULL
mit jeder anderen Zeichenfolge ergibt ein NULL
. Verwenden Sie COALESCE()
auf jeder Spalte oder auf der verketteten Zeichenfolge, wie angemessen.
Bearbeiten: Das folgende Beispiel legt stage_name
fest nur wenn es NULL
ist . Andernfalls können Sie den stage_name
angeben in Ihrem INSERT
-Anweisung, und sie wird beibehalten.
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