BEGIN
DECLARE no_more_record INT DEFAULT 0;
DECLARE insertColumn VARCHAR(18);
DECLARE cur_record CURSOR FOR SELECT insertParam FROM testTable;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_record = 1;
OPEN cur_record;
FETCH cur_record INTO insertColumn;
WHILE no_more_record != 1 DO
IF NOT EXISTS(SELECT column1 FROM insertTable WHERE column1=insertColumn) THEN
INSERT INTO insertTable
SELECT insertColumn,colunm2,column3,colunm4 WHERE column1='123';
END IF;
FETCH cur_record INTO insertColumn;
END WHILE;
CLOSE cur_record;
END
以上代码实现的功能:为testTable字段每个insertParam添加insertTable中column1=‘123’对应的所有记录。
如果这句话比较难懂的话,可以想象以下情景:
一个班级(学生表)有小明,小刚,小红三名同学,
小明同学有苹果,橘子,梨(学生-资源表)。
现在要求所有学生都有这三种水果,也就是遍历学生表,再把小明拥有的资源复制给每个学生一份。最后学生-资源表中所有学生都对应三个水果。