mysql_存储过程

举例子

create
    definer = root@`%` procedure insert_batch_test(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 test (std, score)
        VALUES (CEILING(RAND() * 10 + 100), CEILING(RAND() * 50 +50));
    UNTIL i = max_num
        END REPEAT;
    COMMIT;

END;

这是一个 MySQL 存储过程,主要功能是往名为 test 的表中插入一批数据,插入的数据包括两个字段std 和score。以下是对存储过程代码的解释:

  1. 存储过程的名称是 insert_batch_test
  2. 存储过程的定义者(创建者)是root,并且在任何主机上都能够被调用(definer =root@'%')。
  3. 存储过程接受两个输入参数:STARTmax_num,它们的数据类型都是整数(int(10))。
  4. 存储过程使用 DECLARE 关键字声明了一个局部变量 i,初始化为 0。
  5. SET autocommit = 0; 语句将事务的自动提交模式关闭这意味着插入数据后需要手动执行 COMMIT; 才能提交事务
  6. 使用 REPEAT ... UNTIL 循环,循环体中包含了一条插入语句,向test 表中插入数据。
    • CEILING(RAND()*10+100) 生成一个随机数,并将其上取整,确保在一定范围内。
    • 插入的数据的std 和score 字段都是随机生成的整数。
    • 循环的次数受到输入参数 max_num 的控制。
  7. UNTIL i = max_num 表示循环的条件,当 i 达到 max_num 时跳出循环
  8. COMMIT; 语句用于手动提交事务,确保之前的插入操作生效。

这个存储过程的作用是往表中插入一批随机生成的数据,批量插入的数量由输入参数 max_num 控制。如果你调用这个存储过程,需要提供适当的参数值。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值