不是程序员,遇到个问题不知道该怎么解决,请教各位大神帮忙解决。 背景:使用一个 OA 系统,可以自定义模块,只是简单增删改查,业务代码不好二次开发。 问题:有两个数据表表 A 和表 B,表 A 为姓名,学号;表 B 为姓名,学号,成绩。 需求:表 B 插入一行数据(学号,成绩),自动根据表 A 对应的姓名将表 B 中的姓名填写。业务代码没办法修改,需要在数据库中实现。 尝试:试着用触发器 after insert 处理,update A,B set B.name =A.name where B.cardid = A.cardid and B.id = new.id ,会造成循环调用,报错。
DELIMITER $$ CREATE TRIGGER `test`.`tableb_BEFORE_INSERT` BEFORE INSERT ON `tableb` FOR EACH ROW BEGIN SET @name = (SELECT name FROM tablea WHERE NEW.aid = tablea.id); SET NEW.name = @name; END$$ DELIMITER ;