存储过程是可以跨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 存储过程名字;