今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
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