mysql event调用存储过程
mysql event (用来实现定时任务)。mysql
从
5.1.16
开始拥有的新功能。
下面我写一个简单的示例。
先创建数据库和两个表:
drop database dep;
create database dep;
use dep;
create table aa
(id int AUTO_INCREMENT primary key,
remark varchar(20)
);
create table bb
(id int AUTO_INCREMENT primary key,
remark varchar(20)
);
先往a表中插入数据
insert aa values(null,'aa');
insert aa values(null,'bb');
创建存储过程,其功能是把a表的内容复制到b表中.
drop PROCEDURE if exists aapro;
create PROCEDURE aapro()
begin
insert into bb (remark) select remark from aa;
commit;
end;
创建mysql event,
从
2010
年1
月
14
日
15
点
24
分
59
秒起每1分钟调用一次
procedure aapro
。
drop event if exists aa_event;
create event aa_event
on SCHEDULE
EVERY 1 MINUTE STARTS '2010-01-14 15:24:59'
ON COMPLETION PRESERVE
DO call aapro();
起初我执行上面的
aa_event。b表中一直没有数据,单独运行存储过程显示有数据,
后为查资料才知道没有启动mysql event,
启动语句:set global event_scheduler =1;
在运行aa_event之前运行。
再次查询b表,就有数据了。
相关文档:
http://blog.chinaunix.net/u/14014/showart_490462.html
mysql>show variables like '%timeout';
打印结果如下:
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| connect_timeout | 5 |
| delayed_insert_timeout | 300 |
| interactive_ ......
1.关键字
auto_increment
2.自增用法
例:
CREATE TABLE animals ( id mediumint not null auto_increment,
name char(30) not null,
primary key (id));
3.关于自增
Q:怎么获得当前的自增的最大值?
A:select @@identity
Q:怎么获得table的当前自增最大值?
A:select max(i ......
几个常用用例:
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump ......