Insert into B(apid,其他字段,...) select appid,其他字段... from A group by appid
你说的这种方法我知道 我的意思是 要先找出 A表中比B表多出的数据 然后插入B表
insert into b select a.* from a left join b on a.appid=b.apid where b.apid is null
create trigger tr_insert_tb1 after insert on tb for each row begin if not exists(select * from tb1 where i=new.i) then insert into tb1(i) value( new.i); end if; end;
DELIMITER $$USE `jfyd_mytest`$$DROP TRIGGER /*!50032 IF EXISTS */ `chId`$$CREATE /*!50017 DEFINER = 'jfyd'@'%' */ TRIGGER `chId` AFTER INSERT ON `jfyd_single_order` FOR EACH ROW BEGIN
IF NOT EXISTS(SELECT * FROM `jfyd_single_order` WHERE `ChannelID`=new.`ChannelID` GROUP BY `ChannelID`) THEN INSERT INTO `jfyd_single_channel`(`chId`) VALUE( new.`ChannelID`); END IF;
END; $$DELIMITER ;好像有问题..帮忙看看
IF NOT EXISTS(SELECT * FROM `jfyd_single_order` WHERE `ChannelID`=new.`ChannelID` GROUP BY `ChannelID`) THEN INSERT INTO `jfyd_single_channel`(`chId`) VALUE( new.`ChannelID`); END IF; 你判断jfyd_single_order这个不对吧,是这个吧jfyd_single_channel,这个表不能重复的
select a.* from a left join b on a.appid=b.apid where b.apid is null
after insert on tb
for each row
begin
if not exists(select * from tb1 where i=new.i) then
insert into tb1(i) value( new.i);
end if;
end;
/*!50017 DEFINER = 'jfyd'@'%' */
TRIGGER `chId` AFTER INSERT ON `jfyd_single_order`
FOR EACH ROW BEGIN
IF NOT EXISTS(SELECT * FROM `jfyd_single_order` WHERE `ChannelID`=new.`ChannelID` GROUP BY `ChannelID`) THEN
INSERT INTO `jfyd_single_channel`(`chId`) VALUE( new.`ChannelID`);
END IF;
END;
$$DELIMITER ;好像有问题..帮忙看看
INSERT INTO `jfyd_single_channel`(`chId`) VALUE( new.`ChannelID`);
END IF;
你判断jfyd_single_order这个不对吧,是这个吧jfyd_single_channel,这个表不能重复的