码迷,mamicode.com
首页 > 数据库 > 详细

MariaDB 脚本

时间:2018-09-01 17:26:34      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:local   批量   mock   abc   提交   长度   def   code   研究   

研究MariaDB, 需要mock up一些假数据:

生成n个长度整型数的函数rand_num:

CREATE DEFINER=`root`@`localhost` FUNCTION `rand_num`(n INT) RETURNS int(5)
begin
DECLARE i INT  DEFAULT 0;
DECLARE result INT  DEFAULT 0;
WHILE i < n DO
        SET result = result*10 + FLOOR(RAND()*10); 
        SET i = i +1;
    END WHILE;
RETURN result;
end

生成n个长度字符串的函数rand_string:

CREATE DEFINER=`root`@`localhost` FUNCTION `rand_string`(n INT) RETURNS varchar(255) CHARSET latin1
BEGIN
    DECLARE chars_str varchar(100) DEFAULT abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789;
    DECLARE return_str varchar(255) DEFAULT ‘‘;
    DECLARE i INT DEFAULT 0;
    WHILE i < n DO
        SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));
        SET i = i +1;
    END WHILE;
    RETURN return_str;
END

往表里批量插入数据的存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_users`(IN countNum INT(10))
BEGIN
DECLARE i INT  DEFAULT 0;
SET autocommit = 0;/*把自动提交设为0*/
REPEAT
SET i = i +1;
INSERT INTO users(ID,DELETED) VALUES(rand_string(36), rand_num(1));
UNTIL i=countNum
END REPEAT;
COMMIT;
end

最后调用存储过程:  批量插入10条数据

  CALL   insert_users(10)

MariaDB 脚本

标签:local   批量   mock   abc   提交   长度   def   code   研究   

原文地址:https://www.cnblogs.com/liufei1983/p/9570777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!