DELIMITER //
DROP PROCEDURE
IF
EXISTS test_two2;#如果有test_two2存储过程就删除
CREATE PROCEDURE test_two2 ( ) #创建存储过程
BEGIN
DECLARE
i INT DEFAULT 1;#申明变量i为int类型初始值为1
DECLARE
j INT DEFAULT 1;#申明变量j为int类型初始值为1
DECLARE
k INT DEFAULT 1;#申明变量k为int类型初始值为1
WHILE
i <= 20 DO#循环条件,当i小于20执行
WHILE
j <= 20 DO
WHILE
k <= 20 DO
INSERT INTO t_a_shelf ( bank, bay, LEVEL, location, STATUS, user_code, user_name, user_department, create_user, create_date_time )
VALUES
(
i,
j,
k,
CONCAT( '00', i, '00', j, '00', k ),
'0',
'',
'',
'',
'朱正',
NOW( )
);
SET k = k + 1;
END WHILE;
set k = 1;//跳出循环之后要给k赋值默认值1
SET j = j + 1;
END WHILE;
set j = 1;//跳出循环之后要给j赋值默认值1
SET i = i + 1;
END WHILE;
END //
可以看到具体的逻辑中多了set k = 1;和 set j = 1;,这和我们的for循环不太一样,具体的原因以后作调查,此处只做记录处理。