当前位置:  开发笔记 > 后端 > 正文

MySQL - 将字段的默认值设置为字符串连接函数

如何解决《MySQL-将字段的默认值设置为字符串连接函数》经验,为你挑选了1个好方法。

我有一个看起来有点像这个演员的表(forename,surname,stage_name);

我想更新stage_name以使其默认值为

forename." ".surname

以便

insert into actors(forename, surname) values ('Stack', 'Overflow');

会产生记录

'Stack'     'Overflow'    'Stack Overflow'

这可能吗?

谢谢 :)



1> Bill Karwin..:

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.

注意NULLforename和surname,因为a NULL与任何其他字符串的concat 产生一个NULL.使用COALESCE()每列或对所连接字符串作为适合.

编辑:以下示例stage_name仅在设置时设置NULL.否则,您可以stage_nameINSERT语句中指定,并保留它.

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

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有