美文网首页
mysql-存储函数、存储过程

mysql-存储函数、存储过程

作者: bug_ling | 来源:发表于2020-11-26 09:30 被阅读0次

在测试数据的过程中,通过存储函数及存储过程构造数据:

# 生成随机字符串

DELIMITER $$

CREATE FUNCTION rand_string (n INT) RETURNS VARCHAR(255)

BEGIN

    DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

    DECLARE return_str VARCHAR(255) DEFAULT '';

    DECLARE i INT DEFAULT 0;

    WHILE i < n DO

        SET return_str = CONCAT(return_str,SUBSTRING(chars_str FROM FLOOR(1+RAND()*52) FOR 1));

        SET i = i+1;

    END WHILE;

    RETURN return_str;

END $$

# 生成随机数

DELIMITER $$

CREATE  FUNCTION `rand_num`() RETURNS int(5)

BEGIN

    DECLARE i INT DEFAULT 0;

    set i = FLOOR(100+RAND()*10);

    RETURN i;

END $$

# 创建存储过程

## 生成dept的数据

DELIMITER $$

CREATE  PROCEDURE `insert_dept`(in start int(10), in max_num int(10))

BEGIN

    declare i int default 0;

    set autocommit = 0;

    repeat

    set i = i + 1;

    insert into dept (deptno, dname, loc) values ((start + i), rand_string(10), rand_string(8));

    until i = max_num

    end repeat;

    commit;

END $$

## 生成emp的数据

CREATE  PROCEDURE `insert_emp`(IN START INT(10), IN max_num INT(10))

BEGIN

    DECLARE i INT DEFAULT 0;

    SET autocommit = 0;

    REPEAT

        SET i = i + 1;

        INSERT INTO emp (empno, ename, job, mgr,hiredate, sal, comm, deptno) VALUES ((START+i), rand_string(6), 'salesman', 0001, CURDATE(), 2000,  400, rand_num());

        UNTIL i = max_num

    end REPEAT;

    COMMIT;

END

## 生成数据brief

delimiter $$

CREATE DEFINER = CURRENT_USER PROCEDURE `insert_brief`(in start bigint(20), in max_num bigint(20))

BEGIN

    declare i int default 0;

    set autocommit = 0;

    repeat

    set i = i + 1;

    insert into brief (`name`, `brief`, `address`) values (rand_string(5), rand_string(10), rand_string(8));

    until i = max_num

    end repeat;

    commit;

END $$

# 调用:

call insert_dept(1, 10);

# 删除函数与存储过程:

drop function/procedure insert_emp

相关文章

  • mysql-存储函数、存储过程

    在测试数据的过程中,通过存储函数及存储过程构造数据: # 生成随机字符串 DELIMITER $$CREATE F...

  • 存储过程与函数

    存储过程与函数存储过程的定义存储过程的创建存储过程的操作自定义函数 存储过程与函数 存储过程的定义 运行效率高 降...

  • MySQL语法模板 SQL语句:函数、存储过程

    创建函数 创建存储过程 修改函数 修改存储过程 调用 删除函数 删除存储过程

  • MySQL优化

    mysql-基础-视图,存储过程,触发器 面试题 面试你所要知道的:MySQL存储过程 https://blog....

  • 17 存储过程

    过程: 函数: 过程是没有返回值的函数 存储过程: 存储过程语法 存储过程1--创建简单的存储过程 存储过程2--...

  • MySQL 视图和存储程序

    MySQL 视图和存储程序 存储程序:存储函数、存储过程、触发器和事件的总称。 存储例程:存储函数+存储过程。 触...

  • mysql-存储过程

    创建无参数的存储过程 调用无参数存储过程 删除存储过程 创建带有IN类型的存储过程 修改结束标识符为// 调用带有...

  • MySQL-存储过程

    定义:存储过程是一种数据库对象,用来存储复杂的程序以方便给外部调用。存储过程体现的思想就是sql代码的封装与复用。...

  • PL/SQL之存储过程

    存储过程、存储函数和触发器 存储过程和存储函数定义:指存储在数据库中供所有用户程序调用的子程序叫存储过程或存储函数...

  • Oracle之存储过程与存储函数

    存储过程和存储函数指存储在数据库中供所有用户程序调用的子程序叫存储过程或者存储函数;存储过程和存储函数相同点:完成...

网友评论

      本文标题:mysql-存储函数、存储过程

      本文链接:https://www.haomeiwen.com/subject/wdediktx.html