今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_data$$
CREATE PROCEDURE insert_data (totalRecord INT)
BEGIN
DECLARE counter INT DEFAULT 0;
DECLARE resOrder INT DEFAULT 14;
my_loop : LOOP
SET counter = counter + 1;
INSERT INTO resource(folder_id,name,description,cover_img_path,cover_img_title,resOrder,hot)
VALUES ('3', 'test', '<p>ddd</p>', 'travel/1413437649442.jpg', 'test', resOrder, '0');
SET resOrder = resOrder + 1;
IF counter >= totalRecord THEN
LEAVE my_loop;
END IF;
END LOOP my_loop;
END$$
DELIMITER;
call insert_data();
简单的解释下:
DELIMITER $$ 是临时将结束符换成$$
后面定义了一个存储过程,里面写了一点逻辑,然后进行了调用,最后调用,可以传递一个参数。
我在四年前写过一篇关于存储过程的博客,大家感兴趣的可以参考:
http://asialee.iteye.com/blog/1008550