我有一张表,看起来有点像这个演员(名字,姓氏,stage_name);
我想更新stage_name以使其具有默认值
forename." ".surname
以便
insert into actors(forename, surname) values ('Stack', 'Overflow');
会产生记录
'Stack' 'Overflow' 'Stack Overflow'
这可能吗?
谢谢 :)
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
姓氏和姓氏,因为aNULL
与任何其他字符串的连接会产生a 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
我试图设置可变投掷SpEL在Spring启动应用程序: 应该来自应用程序-{profile}。财产。但是字段始终为空,即使已存在。 带有的代码可以正常工作,但包含空字符串。 我的问题是,如果使用SpEL的属性不存在,如何将null设置为variable。 upd:值来自特定于配置文件的属性文件
问题内容: 这个问题已经在这里有了答案 : MySQL串联运算符 (6个答案) 3年前关闭。 我需要在MySQL查询中将字符串与字段值连接起来,以便向左联接两个表。 表一具有称为“ category_id”的列,该列具有诸如61、78、94之类的数字值。 表2的一列称为“查询”,它表示请求路由机制,其值包括“ product_id = 68”,“ category_id = 74”,“ manuf
我有一个自定义的对象FlightRequest的机会对象,有一个金额提交的机会和FlightRequest。 我想在FlightRequest的Amount字段中将机会的金额提交值设置为默认值。因此,每当单击FlightRequest的新按钮时,金额输入应该已经与机会的金额字段一起输入 我使用的是标准页面布局,没有任何视觉力页面布局,不能使用它。 我看到有一个选项可以设置字段的默认值,但Oppor
我在我的项目中使用Spring Boot Spring数据Postgresql Kotlin。 默认情况下,JPA对字符串字段使用varchar(255),因此我需要为我的所有字符串列添加@Col列(列定义="TEXT")。 当我不添加@Column时,有什么方法可以将文本设置为默认字符串?
问题内容: 是否可以通过SQL语句确保列的默认值为空字符串而不是? 问题答案: 是-使用DEFAULT约束:
问题内容: 我正在尝试使用Jackson将一些JSON对象映射到Java对象。JSON对象中的某些字段是必填字段(可以用标记),而某些字段是可选字段。 用Jackson映射之后,在JSON对象中未设置的所有字段在Java中都将具有空值。是否有类似的注释可以告诉Jackson为Java类成员设置默认值(如果为null)? 编辑:为了使问题更清楚,这里是一些代码示例。 Java对象: JSON对象可以