DELIMITER $$ CREATE PROCEDURE update_user(IN n INT) BEGIN DECLARE i INT DEFAULT 1; WHILE i<= n DO UPDATE user SET age = age + 1 where id = i; SET i = i + 1; END WHILE; END $$ DELIMITER ;
上面的代码中,定义了一个存储过程update_user,他接受一个整数n作为参数,并通过while循环对表user中的前n条数据进行更新。在循环中,使用了内置的变量i来控制循环次数,每次循环都会更新一条记录的年龄值,直到满足指定的循环次数。
为了使代码更加易读易懂,大家使用了DELIMITER语句指定自定义的分隔符$$,避免了在循环中使用分号时的语句冲突。在存储过程结束时,又使用DELIMITER语句将自定义的分隔符恢复成原来的分号。