给触发器查询别的表再生成字段插入到另一个表中

CREATE DEFINER = 'root'@'%' TRIGGER `tg_i` AFTER INSERT ON `table1`    //建立触发器
  FOR EACH ROW
BEGIN                                                                                                                      //开始
     SET @inNodeIds= (SELECT group_concat(CR.nodeId) FROM table2 CR WHERE CR.parkingId = new.parkingId AND CR.directionInOut=0);                                                                                               //查询另一个表并且把查询结果设成一个变量

    INSERT INTO cloud (dataType, jsonData) 
    VALUES ('TABLE1', 
        CONCAT_WS(
            ',',CONCAT('{"recordId":"', new.recordId, '"'),
            CONCAT_WS(':','"inNodeIds"', IF(@inNodeIds IS NULL OR @inNodeIds='', '""', CONCAT('"', @inNodeIds, '"'))),
            CONCAT_WS(':', '"areaName"', IF(new.areaName IS NULL OR new.areaName='', '""}', CONCAT('"', new.areaName, '"}')))
        ));                                                         //new.xxx是触发器生成的即将插入或修改的信息,old.xxx是触发器所在的表的旧的信息
END;                                                                                                                          //结束
 

猜你喜欢

转载自blog.csdn.net/dandelionoooo/article/details/86486992