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