/* 使用WHILE循环更新数据表中的数据 */ CREATE PROCEDURE update_table() BEGIN DECLARE i INT DEFAULT 0; WHILE i< 10 DO UPDATE table SET column1 = i WHERE column2 = 'some value'; SET i = i + 1; END WHILE; END; /* 使用FOR循环插入一系列数据 */ CREATE PROCEDURE insert_table() BEGIN DECLARE i INT DEFAULT 0; FOR i IN 1..10 DO INSERT INTO table (column1, column2) VALUES (i, 'some value'); END FOR; END; /* 使用CURSOR循环遍历数据 */ CREATE PROCEDURE print_table() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE row_value VARCHAR(255); DECLARE cur CURSOR FOR SELECT column1 FROM table; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; read_loop: LOOP FETCH cur INTO row_value; IF done THEN LEAVE read_loop; END IF; SELECT row_value; END LOOP; CLOSE cur; END;
需要注意的是,循环操作可能会对数据库产生较大的负荷,应谨慎使用。