通达96
2020-05-18 10:05
采纳率: 100%
浏览 449

mysql 触发器插入时条件问题

mysql的触发器:业务如下:现有A B C 三张表,A表和B表是关联关系(主外键关联,A表的外键pid对应B表的主键id)想要在A表下写一个触发器。当A插入一条新的数据时,将A表的两个字段aa和cc的数据以及相关联的B表的字段ee ff gg 插入到C(c表的字段:aa cc ee ff gg)表中。请问这个业务该如何实现啊?
我的初步想法是这个样子的,但是有问题,找不到这个New

CREATE TRIGGER `insert_rate_trigger` AFTER INSERT ON `in_rates` FOR EACH ROW BEGIN
 INSERT INTO hx_info (in_id,in_product_code,in_product_name,agreem_code,contract_code,risk_code,in_pro_short_name,sub_risk_flag,kind_code) 
 SELECT t1.id,t1.in_product_code,t1.in_product_name,t2.string1,t2.string2,t1.risk_code,t1.in_pro_short_name,t1.sub_risk_flag,t1.kind_code
 FROM in_manage t1, in_rate t2
 WHERE t1.id = t2.pid and t2.id = New.id;
 END
;;
delimiter ;

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 轻点 别打脸 2020-05-18 10:18
    已采纳

    CREATE TRIGGER save_at_same_time -- 触发器名称
    AFTER INSERT ON A -- 表名 FOR EACH ROW
    BEGIN
    INSERT INTO C (aa,cc,ee,ff,gg)
    SELECT aa,cc,ee,ff,gg FROM A JOIN B WHERE xxx
    END;

    定义一个版本号字段,或者查询条件为最新一条,每次触发触发器的时候,对A表最新一条记录,或者版本号最大的一条记录,进行关联,字段入C库

    打赏 评论
  • _知道者丶 2020-05-18 10:28

    建议使用java等语言代码实现。

    打赏 评论

相关推荐 更多相似问题