当前位置: 首页 > 面试题库 >

如何创建触发器以进行字段串联

李云
2023-03-14
问题内容

我有1张桌子,像这样:

user
----------------------------------------
id | first_name | last_name | full_name
----------------------------------------

我想编写一个将first_name和last_name连为full_name的触发器。

我已经尝试过以下触发器:

delimiter |
create trigger fullname after insert on user
for each row
begin
update user set full_name=(select concat(first_name,last_name) from user where id=new.id)where id=new.id;
end;
|

在向用户表插入数据时显示此错误:

#1442 - Can't update table 'user' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.


问题答案:

INSERT触发器触发时,您无法更改表。但是,您可以在插入记录之前创建触发器。

DELIMITER |
CREATE TRIGGER `fullname` BEFORE INSERT ON `user`
FOR EACH ROW 
BEGIN
  SET NEW.full_name = CONCAT(NEW.first_name, ' ', NEW.last_name);
END |
DELIMITER ;


 类似资料:
  • 本文向大家介绍MySQL如何创建触发器,包括了MySQL如何创建触发器的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了MySQL创建触发器的具体代码,供大家参考,具体内容如下 先来个实例: 实例解析:   先创建触发器中待存储的表t_attendance   DELIMITER $   意思是告诉mysql下文执行语句以“$”结束,如果没有这句,下面语句会出错,mysql无法判断哪句

  • 主要内容:基本语法,创建 BEFORE 类型触发器,创建 AFTER 类型触发器触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <

  • 进入函数详情页,点击“触发器”标签,展示当前函数配置的触发器,点击“创建新触发器”,选择HttpTrigger,填写对应信息。 路径映射必须以“/”开头,可以选择以GET或POST方法触发函数。 创建触发器后,触发器详情页面可对触发器进行修改及删除的操作,点击下图所示图标,可以获得HTTPS URL,通过该URL在浏览器或终端直接访问,触发Hello World函数。

  • 我创建了一个触发器,当创建或更新特定帐户记录类型时,该触发器将自动创建联系人。问题是,我不确定如何填充联系人“帐户名”查找字段。此字段是对Account对象的查找。我的代码如下。如果您有任何关于如何集成此缺失组件的帮助,我们将不胜感激。 在帐户上触发autoCreate联系人(更新后,插入后){List new联系人=new List();

  • 问题内容: 我有一个表,其中有列,列和许多其他列 我希望列支持Unicode的最大长度可以容纳700个Unicode字符。我无法设置,因为MYSQL仅对唯一列支持最大765字节的长度,而Unicode需要3个字节,因此我需要2100字节(700 * 3)唯一列。 因此,解决方案是创建一个触发器,以防止用户插入重复项。例如,如果用户在表中插入“ ”(我们将不区分大小写),则Mysql将完全中止包含该

  • 问题内容: 如果用户有任何机会更改其成员名称,我需要在历史记录表中跟踪当前更改的成员名称。 例如,当前信息是: 会员编号:5534会员姓名 :james 用户将其更改为: 会员编号:5534会员名称 :标记 到现在为止,“成员”将保留当前值: 5534和标记 和 “ MemberLastChanged”将保持: 5534和詹姆斯 如何使用触发器在T-SQL中实现此目标? 问题答案: 您创建一个UP