存储过程(procedure):

建立一个存储过程需要知道的基础知识

1.确定输入/输出的参数和类型:

IN tname varchar(20) 其中 IN 表示输入参数,tname  是参数名 varchar(20) 是参数类型

RETURNS int(10)  其中 RETURNS 表示输出 返回  ,int(10) 表示 返回类型

2.定义变量和赋值。

declare 定义变量  例如   declare a float;

set 赋值    例如  set a=0;  或者 set a = rand();

如果set 的变量前面有@符号表示这个变量是一个会话变量。否则是一个局部变量。

3.过程的出体部分。可以是各种运算,也可以是数据库操作。支持 if ...else 、循环等基本语法。

4.程序可以有返回值 也可以没有

5.调用存储过程 使用 call 例如  call pro_name('1','2');

建立一个存储过程的格式:

create procedure   存储过程名称  (IN $table_name varchar(20),IN $field varchar(10))

begin //主体开始

//主体

end // 主体结束

definer

例如:

delimiter $$   设置语句结束符为 //
DROP PROCEDURE IF EXISTS select_number//
create procedure select_number(in ac int)
begin
declare a text;
set a=ac;
select a;
end$$
delimiter ; //将语句结束改回;

因为在存储过程中使用了 ;号 为了不让mysql 运行 需要修改mysql 语句结束符;

调用

call  select_number();

结果为  :

基于这个建立一个事件:

create event if not exists test
on schedule every second
on completion preserve
do call select_number();

每隔10秒执行以下  select_number 这个存储过程   test 是时间的名称;

定时插入案例

存储过程为:

 delimiter $$
create procedure insert_name(in name varchar())
begin
insert into a2 values(name);
end$$
delimiter ;

建立每个10秒插入事件:

create event if not exists insert_name
on schedule every second
on completion preserve
do call insert_name('test_name');

每隔多一点时间  查看一个a2 表 看看是否多了一个  test_name  的值;

关闭事件:

alter event insert_name on completion preserve disable;

删除事件:

drop event insert_name;

查看所有事件:

show events;

如果event 执行不了,可能是因为event功能没有打开;

查看event是否打开:

show variables like '%scheduler%';

开启:

set global event_scheduler = ;

查看有哪些存储过程:

 show procedure status;

查看存储过程建立代码:

show create procedure proc_name;

最新文章

  1. ormlite的使用方法
  2. Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法
  3. webform中使用webapi,并且使用autofac
  4. loadrunner常用术语
  5. mysql Field xxx doesn't have a default value STRICT_TRANS_TABLES(存储引擎启用严格模式,非法数据值被拒绝)
  6. EasyUI-Tab 标签添加右键菜单
  7. android直接读取数据库文件
  8. Application.EnableVisualStyles();
  9. 使用gfortran将数据写成Grads格式的代码示例
  10. Windows在结构FTPserver
  11. ViewPager和View组合 实现页面的切换
  12. 使用boost/property_tree进行XML操作
  13. (转载)Java多线程入门理解
  14. 命令行参数处理-getopt()和getopt_long()
  15. GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱
  16. 关于IO的整理
  17. Andrew Ng机器学习课程笔记(三)之正则化
  18. SystemV-IPC
  19. LOJ#3054. 「HNOI 2019」鱼
  20. HTML标签及属性大全

热门文章

  1. Issue 6: 装机系列1,PC下windows系统安装指南
  2. Windows Server 2008 R2 主域控制器委派DNS到子域控控制器
  3. (转载)Spring的refresh()方法相关异常
  4. 【转】Apache Digest验证
  5. vpn打通结果ping不通
  6. Android四大核心组件之Service
  7. cygwin E437
  8. Python常见的运行错误
  9. form表单编码方式设置为multipart/form-data,后台参数出现乱码情况
  10. Java类WebServer及中间件拿webshell方法总结