MySQLは、DEFAULTの計算列または式をサポートしていません 列定義のオプション。
これはトリガーで実行できます(MySQL 5.0以降が必要です):
CREATE TRIGGER format_stage_name
BEFORE INSERT ON actors
FOR EACH ROW
BEGIN
SET NEW.stage_name = CONCAT(NEW.forename, ' ', NEW.surname);
END
同様のトリガーをBEFORE UPDATEで作成することもできます。 。
NULLに注意してください NULLの連結であるため、名前と名前は 他の文字列を使用すると、NULLが生成されます 。 COALESCE()を使用する 必要に応じて、各列または連結された文字列に。
編集: 次の例では、stage_nameを設定します NULLの場合のみ 。それ以外の場合は、stage_nameを指定できます INSERTで ステートメント、そしてそれは保存されます。
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