MySQL在
DEFAULT列定义选项中不支持计算列或表达式。
您可以在触发器中执行此操作(需要MySQL 5.0或更高版本):
CREATE TRIGGER format_stage_name BEFORE INSERT ON actorsFOR EACH ROWBEGIN SET NEW.stage_name = CONCAt(NEW.forename, ' ', NEW.surname);END
您可能还想创建一个类似的触发器
BEFORE UPDATE。
请注意
NULL姓氏和姓氏,因为a
NULL与任何其他字符串的连接会产生a
NULL。使用
COALESCE()每列或对所连接字符串作为适合。
编辑: 以下示例
stage_name仅在设置时设置
NULL。否则,您可以
stage_name在
INSERT语句中指定,它将被保留。
CREATE TRIGGER format_stage_name BEFORE INSERT ON actorsFOR EACH ROWBEGIN IF (NEW.stage_name IS NULL) THEN SET NEW.stage_name = CONCAt(NEW.forename, ' ', NEW.surname); END IF;END



