DEFAULTMySQL は、列定義のオプションで計算された列または式をサポートしていません。
トリガーでこれを行うことができます (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。
aを他の文字列とNULL連結すると. 必要に応じて、各列または連結された文字列で使用します。NULLNULLCOALESCE()
編集:次の例は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