mysql流程控制
流程控制
if函数
if(表达式1,表达式2,表达式3) 如果表达式1成立,则返回表达式2的值,否则返回表达式3的值
循环
分类:while,loop,repeat
iterate类似于continue,结束本次循环,继续下一次
leave类似break,结束当前循环2
案例
批量插入:
DELIMITER $ CREATE PROCEDURE proc1(IN count INT) BEGIN DECLARE i INT DEFAULT 1; WHILE i<=count DO INSERT INTO `user`(`name`, email) VALUES (CONCAT('test_user', i), 'test@gmail.com'); SET i=i+1; END WHILE; END $ CALL proc1(3)$
加入循环控制:最多只插入5条。
DELIMITER $ CREATE PROCEDURE proc2(IN count INT) BEGIN DECLARE i INT DEFAULT 1; a:WHILE i<=count DO INSERT INTO `user`(`name`, email) VALUES (CONCAT('test_user', i), 'test@gmail.com'); IF i>=5 THEN LEAVE a; END IF; SET i=i+1; END WHILE a; END $ CALL proc2(10)$
如果不需要进行循环控制,比如中途跳出之类的,while那里就可以不用加上a,直接while就可以了。