mysql存储过程
来源:互联网 发布:排课系统算法 编辑:程序博客网 时间:2024/05/01 20:25
因公司业务的需求学习了下,mysql 的存储过程。
之前一直用的是oracle的数据库,现在工作需要用的mysql 的数据库。对mysql存储过程学习做如下总结:
在mysql 里面的存储过程是被成为函数的,定时的去执行一个函数是叫作时间的执行
create proceduret_insert_table()
-- 里面是具体的执行
/** 标记是否出错 */
declare t_error int default 0;
/** 如果出现sql异常,则将t_error设置为1后继续执行后面的操作 */
declare continue handler for sqlexceptionset t_error=1; --出错处理
/** 显式的开启事务,它开启后,事务会暂时停止自动提交*/
-- start transaction;
/** 关闭事务的自动提交 */
set autocommit = 0;
insert into t_test(parent_id,child_id)values('A','abcded');
insert into t_test(name,age)values('zhangsan',null);
/** 标记被改变,表示事务应该回滚 */
if t_error=1 then
rollback; -- 事务回滚
else
commit; -- 事务提交
end if;
end
在mysql里面根据原表去创建目标表的时候,我在网上找的资料是
-----复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM旧表
-----只复制表结构到新表
CREATE TABLE新表 SELECT * FROM 旧表 WHERE 1=2
只复制表的结构到新表上面红色的部分是不对的,
我是使用如下的sql执行正常操作的
Create table 新表 like 旧表
我自己做的一个小的测试如下:
CREATE PROCEDURE myinfo()
begin
set@i=curdate();
set@time=REPLACE(@i,"-","");
set@timeStr=SUBSTR(@time,3,4); /*对时间格式进行处理*/
set@sqlstr=CONCAT('CREATE TABLE `ss_cdr_cdr_info_',cast(@timeStr as char),'` likess_cdr_cdr_info');
prepare stmt from @sqlstr;
execute stmt;
End;
网上学习创建定时器处理如下:
mysql定时器是系统给提供了event,而oracle里面的定时器是系统给提供的job。下面创建表:
create table mytable (
id int auto_increment not null,
name varchar(100) not null default'',
introduce text not null,
createtime timestamp not null,
constraint pk_mytable primarykey(id)
)
创建存储过程,这里的存储过程主要提供给mysql的定时器event来调用去执行:
create procedure mypro()
BEGIN
insert into mytable(name,introduce,createtime) values ('1111','inner mongolia',now());
end;
这里只是简单的写了一下,只是为了说明例子。
紧接着创建mysql的定时器event:
create event if not existseventJob
on schedule every 1 second
on completion PRESERVE
do call mypro();
这里设置为每一秒执行一次
至此所有的准备工作已经写完了,做完这些,mysql要想利用定时器必须的做准备工作,就是把mysql的定时器给开启了:
SET GLOBAL event_scheduler =1; -- 启动定时器
SET GLOBAL event_scheduler =0; -- 停止定时器
紧接着还要开启事件:
ALTER EVENT eventJob ON COMPLETION PRESERVE ENABLE; --开启事件
ALTER EVENT eventJob ON COMPLETION PRESERVE DISABLE; --关闭事件
SHOW VARIABLES LIKE '%sche%'; -- 查看定时器状态
真的是很实用。
- 【mysql】mysql存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- MySQL存储过程详解 mysql 存储过程
- 位运算(二进制位编号顺序)
- 矩阵相乘
- Linux生成动态链接库的-fPIC参数问题
- poj 2135 Farm Tour
- Double
- mysql存储过程
- webpy+uploadify实现文件异步上传
- 归并排序
- QFE23xx揭秘:最强大的Qualcomm RF360前端芯片——更多频带,更多模式,更小的PCB尺寸
- spss Clementine12 破解方法
- POJ 2186 Popular Cows -- tarjan 缩点
- 使用jquery.upload.js实现异步上传
- api文件名
- crontab详解