读一读

存储过程是可以跨database访问的,例如user数据库的存储过程可以访问role数据库中的表。


开启

alter event 定时器名 enable;

关闭

alter event 定时器名 disable;

create event 名字
on schedule every 1 second starts "1994-03-20 00:00:00"
on completion preserve disable
do call 存储过程名字;

completion preserve 表示关闭定时器还存在

completion not preserve 定时器执行后就删除

disable 表示不启用,enable 表示启用

starts "时间" 表示开始时间


5.1以上版本可以使用

mysql默认是关闭定时器的,用

show variables like "%sche%";#查看event_scheduler。

开启定时器

set global event_scheduler=1

字符类型查询速度

char>varchar>text


存放在information_schema数据库下的views下面

#显示视图
show table status like ‘视图名称’;
show create view cdata;

#删除视图
drop view if exist 视图名字

update 视图名 set .... #更新视图其实更新的也是原数据源的数据
with check option;#必须满足视图的条件才会更新到基表中。

简化查询语句,权限控制(表封闭,开放视图),大表分成多个视图(再分别查询)

#创建
create view 视图名字 as 一个复杂的查询语句
#调用视图
select * from 视图名字
create or replace 视图 as ... #创建或者替换掉

select 函数名(变量)  等

就像已经存在的函数那样调用

每一个函数都要有一个返回值


concat()连接一个多个字符串

#自定义函数
show variables like "%fun%";#  看看有没有打开


创建

create function 函数名(变量)
return 数据类型
begin
执行的语句
return 数据
end


删除

drop function if exists 函数名

查看指定数据库的存储过程

show procedure status where db='数据库名'

查看当前数据库下存储过程列表

select specific_name from mysql.proc

查看存储过程的内容

select specific_name,body from mysql.proc;
#或则
show create procedure 存储过程名字;

#删除存储过程
drop procedure 存储过程名字;