文档章节

Mysql存储过程(procedure)增加测试数据

Clarence_D
 Clarence_D
发布于 2017/05/26 18:26
字数 414
阅读 120
收藏 0

语法

存储过程语法如下:

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

  存储过程体

删除存储过程:

  DROP PROCEDURE <存储过程名称>

调用自定义函数语法:

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

语法实例

create procedure test_procedure()
begin
declare i int;
set i=0;
while i<100000 do
insert 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`()
begin
declare i int;
set i=0;
while i<100000 do
insert 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 set
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`()
begin
declare i int;
set i=0;
while i<100000 do
insert 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 set
mysql> call test_procedure();

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

名词解释

大写 小写 词义 用法
USE use 切换数据库 use test
IF EXIST if exist 判断是否存在 IF EXIST 名
DELIMITER  delimiter 定义结束符 delimiter //
DEFINER definer 权限 definer=root@localhost
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();

© 著作权归作者所有

Clarence_D
粉丝 10
博文 137
码字总数 108689
作品 0
天津
程序员
私信 提问
PHP调用MYSQL存储过程实例

实例一:无参的存储过程 $conn = mysqlconnect('localhost','root','root') or die ("数据连接错误!!!"); mysqlselectdb('test',$conn); $sql = " create procedure myproce() begin INSERT ......

vga
2014/07/31
112
0
mysql-储存过程_已迁移

我们大家都知道MySQL 存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存...

鬼谷子灬
2016/06/29
19
0
mysql 存储过程的创建

注: (1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,...

qq5805bc784f826
2017/09/11
0
0
mysql show命令集合

a. show tables或show tables from databasename; -- 显示当前数据库中所有表的名称 b. show databases; -- 显示mysql中所有数据库的名称 c. show columns from tablename from databasename......

cgjcgs
2015/03/31
108
0
mysql存储过程详解以及PHP调用MYSQL存储过程实例

MySQL存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储...

james_laughing
2016/12/12
14
0

没有更多内容

加载失败,请刷新页面

加载更多

用原生js对表格排序

本文转载于:专业的前端网站➸用原生js对表格排序 阿里的模拟笔试题,当时时间有限没写出来,其实是因为自己对原生dom操作不熟悉,这里补一下。 题目的大意是有一个表格,如代码所示 <table>...

前端老手
33分钟前
5
0
IT兄弟连 HTML5教程 HTML5表单 HTML5新增表单元素

HTML5有一些新的表单元素:<datalist>、<keygen>、<output>。不是所有的浏览器都支持HTML5新的表单元素,但即使浏览器不支持该表单属性,仍然可以显示为常规的表单元素。 1 <datalist>元素 ...

老码农的一亩三分地
35分钟前
4
0
【朝花夕拾】Android自定义View篇之(一)View绘制流程

https://www.cnblogs.com/andy-songwei/p/10955062.html

shzwork
37分钟前
5
0
Qt编写自定义控件70-扁平化flatui

一、前言 对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产...

飞扬青云
46分钟前
3
0
教你玩转Linux—添加批量用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部