博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql存储过程(procedure)增加测试数据
阅读量:7034 次
发布时间:2019-06-28

本文共 4578 字,大约阅读时间需要 15 分钟。

hot3.png

语法

存储过程语法如下:

  CREATE PROCEDURE <存储过程名称>(参数列表)

  存储过程体

删除存储过程:

  DROP PROCEDURE <存储过程名称>

调用自定义函数语法:

  SELECT <存储过程名称>(parameter_value,...)

语法实例

create procedure test_procedure()begindeclare i int;set i=0;while i<100000 doinsert into test_innodb values(i+1,rand_string(100));insert into test_myisam values(i+1,rand_string(100));commit;set i = i+1;end while;end;

效果

    注:由于存储过程中是为两个表中增加10W条测试数据,导致执行时间过长。建议更改为1000,如果不修改可以增加游标批量添加数据。今后会有介绍

mysql> show create procedure test_procedure;+----------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+| Procedure      | sql_mode               | Create Procedure                                                                                                                                                                                                                                     | character_set_client | collation_connection | Database Collation |+----------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+| test_procedure | NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` PROCEDURE `test_procedure`()begindeclare i int;set i=0;while i<100000 doinsert into test_innodb values(i+1,rand_string(100));insert into test_myisam values(i+1,rand_string(100));commit;set i = i+1;end while;end | utf8                 | utf8_general_ci      | latin1_swedish_ci  |+----------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+1 row in setmysql> show create procedure test_procedure;+----------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+| Procedure      | sql_mode               | Create Procedure                                                                                                                                                                                                                                     | character_set_client | collation_connection | Database Collation |+----------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+| test_procedure | NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` PROCEDURE `test_procedure`()begindeclare i int;set i=0;while i<100000 doinsert into test_innodb values(i+1,rand_string(100));insert into test_myisam values(i+1,rand_string(100));commit;set i = i+1;end while;end | utf8                 | utf8_general_ci      | latin1_swedish_ci  |+----------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+1 row in setmysql> call test_procedure();

  rand_string(100)为上一篇自定义函数

名词解释

大写 小写 词义 用法
USE use 切换数据库 use test
IF EXIST if exist 判断是否存在 IF EXIST 名
DELIMITER  delimiter 定义结束符 delimiter //
DEFINER definer 权限 definer=root
PROCEDURE procedure  存储过程 procedure procedure_name
DECLARE declare 声明 DECLARE return_str varchar(10240) 
WHILE..DO while..do while循环 while i < n do
COMMIT commit 提交 commit;
CALL call 执行存储过程 call procedure_name();

转载于:https://my.oschina.net/Clarences/blog/909844

你可能感兴趣的文章
nginx url 重写 [转]
查看>>
P2567 [SCOI2010]幸运数字 DFS+容斥定理
查看>>
J2SE 5.0-memory management whitepaper--delete
查看>>
[leetcode] Anagrams
查看>>
从多级延迟触发器到边沿检测
查看>>
[C] getopt使用说明
查看>>
shell链接oracle导出txt文本
查看>>
家庭环保装修,美博士帮您搞定
查看>>
控制台小游戏-贪吃蛇,c++和c#版
查看>>
vsftp不支持软链接,可以用mount来支持不同的目录结构
查看>>
leetcode-747-Largest Number At Least Twice of Others(求vector的最大值和次大值)
查看>>
leetcode-766-Toeplitz Matrix(每一条对角线元素的比较)
查看>>
linux网络编程-socket(36)
查看>>
仿手机易班页面
查看>>
Unity3D 一些基础的3D图形学算法
查看>>
【转】Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)
查看>>
jQuery Ajax 相关知识七
查看>>
spring 配置文件 引入外部的property文件的两种方法
查看>>
Django 模板
查看>>
Java 之反射机制
查看>>