-----------------将查询结果赋值给变量-------------- -- 方式 1 DECLARE cnt INT DEFAULT 0; select count(*) into cnt from test_tbl; select cnt; -- 方式 2 set @cnt = (select count(*) from test_tbl); select @cnt; -- 方式 3 select count(*) into @cnt1 from test_tbl; select @cnt1; -- 多个列的情况下似乎只能用 into 方式 select max(status), avg(status) into @max, @avg from test_tbl; select @max, @avg; --mysql触发器-- delimiter || //mysql 默认结束符号是分号,当你在写触发器或者存储过程时有分号出现,会中止转而执行 drop trigger if exists updatename|| //删除同名的触发器, create trigger updatename after update on user for each row //建立触发器, begin //old,new都是代表当前操作的记录行,你把它当成表名,也行; if new.name!=old.name then //当表中用户名称发生变化时,执行 update comment set comment.name=new.name where comment.u_id=old.id; end if; end|| delimiter ; -----------------可用-------------- delimiter || drop trigger if exists im_num after|| create trigger im_num after insert on im_person_chatlog for each row begin set @count=(select curdate()); update statisticsnum set Im=Im+1 where statisticsnum.UserId=new.fromid and statisticsnum.CreateTime=@count ; end|| delimiter ; -- ---------------------------- -- im私聊聊天触发器 监听聊天记录表,每增加一条记录,im频次加一 -- ---------------------------- delimiter || drop trigger if exists im_num_person|| create trigger im_num_person after insert on im_person_chatlog for each row begin set @count=(select curdate()); update statisticsnum set Im=Im+1 where statisticsnum.UserId=new.fromid and statisticsnum.CreateTime=@count ; end|| delimiter ; -- ---------------------------- -- im群聊聊天触发器 -- ---------------------------- delimiter || drop trigger if exists im_num_group|| create trigger im_num_group after insert on im_group_chatlog for each row begin set @count=(select curdate()); update statisticsnum set Im=Im+1 where statisticsnum.UserId=new.fromid and statisticsnum.CreateTime=@count ; end|| delimiter ; -- ---------------------------- -- im讨论组聊天触发器 -- ---------------------------- delimiter || drop trigger if exists im_num_discuss|| create trigger im_num_discuss after insert on im_discuss_chatlog for each row begin set @count=(select curdate()); update statisticsnum set Im=Im+1 where statisticsnum.UserId=new.fromid and statisticsnum.CreateTime=@count ; end|| delimiter ; -----mysql定时任务---- set time_zone = '+8:00'; set GLOBAL event_scheduler = 1; # 设置该事件使用或所属的数据库base数据库 use test; # 如果原来存在该名字的任务计划则先删除 drop event if exists upload_to_sdmp; # 设置分隔符为 '$$' ,mysql默认的语句分隔符为 ';' ,这样在后续的 create 到 end 这段代码都会看成是一条语句来执行 DELIMITER $$ # 创建计划任务,设置第一次执行时间为'2014-07-30 10:00:00',并且每天执行一次 create event upload_to_sdmp on schedule every 1 day starts timestamp '2014-07-30 10:00:00' #on schedule every 1 SECOND do # 开始该计划任务要做的事 begin -- do something 编写你的计划任务要做的事 INSERT aaa VALUES (3,'222'); INSERT aaa VALUES (2,'222'); -- 结束计划任务 end $$ # 将语句分割符设置回 ';' DELIMITER ; set GLOBAL event_scheduler = 1; use yisou; drop event if exists upload_to_sdmp; DELIMITER $$ create event upload_to_sdmp on schedule every 1 day starts timestamp '2014-07-30 10:00:00' #on schedule every 1 SECOND do begin #当前日期 set @date=(select curdate()); #获取凌晨的时间戳 set @start=select unix_timestamp(curdate()); #当天结束时间戳 set @stop=@start+86400; set @day_person_num = (select count(*) from im_person_chatlog where timeline > @start and timeline < @stop); update ceshi set num= @day_person_num; end $$ DELIMITER ; ====设置==== set GLOBAL event_scheduler = 1; use yisou; drop event if exists upload_to_sdmp; DELIMITER $$ create event upload_to_sdmp on schedule every 1 day starts timestamp '2014-07-30 10:00:00' do begin DECLARE start,stop,day_person_num INT DEFAULT 0; select unix_timestamp(curdate()) into start; select unix_timestamp(start + 86400) into stop; select count(*) into day_person_num from im_person_chatlog where timeline > start and timeline < stop; update ceshi set num= day_person_num; end $$ DELIMITER ; set GLOBAL event_scheduler = 1; use yisou; drop event if exists upload_to_im; DELIMITER $$ create event upload_to_im #5秒后执行 on schedule every 5 SECOND do begin set @count=(select curdate()); set @start=unix_timestamp(@count); set @end=@start+86400; set @day_person_num=(select count(*) from im_person_chatlog where timeline > @start and timeline < @end); set @im_group_chatlog=(select count(*) from im_group_chatlog where timeline > @start and timeline < @end); set @im_discuss_chatlog=(select count(*) from im_discuss_chatlog where timeline > @start and timeline < @end); set @total=@day_person_num+@im_group_chatlog+@im_discuss_chatlog; update statisticsnum set Im= @total where Create_time=@count; end $$ DELIMITER ; set GLOBAL event_scheduler = 1; use MarketPlace; drop event if exists upload_to_homedate; DELIMITER $$ create event upload_to_homedate #每天定时执行秒后执行 ON SCHEDULE EVERY 1 DAY STARTS '2018-04-13 00:00:00' do begin set @RandNum=(SELECT FLOOR(0 + (RAND() * 10))); set @NewUser=((@RandNum * 109)); set @NweCode=((@RandNum * 19)); set @YtbNum=((@RandNum * 11)); update HomeDate set NewUser= @NewUser,NweCode=@NweCode,YtbNum=@YtbNum,AccessNun=1000 where id=1; end $$ DELIMITER ; set GLOBAL event_scheduler = 1; use MarketPlace; drop event if exists upload_to_homedate_day; DELIMITER $$ create event upload_to_homedate_day #5秒后执行 on schedule every 3600 SECOND do begin set @RandNum=(SELECT FLOOR(0 + (RAND() * 10))); set @TradingTotal=((@RandNum * 10)); set @UserTotal=((@RandNum * 5)); set @ActiveUser=((@RandNum * 5)); set @DealTotal=((@RandNum * 2)); set @AccessNun=((@RandNum * 50)); update HomeDate set TradingTotal=TradingTotal + @TradingTotal,UserTotal=UserTotal+@UserTotal,ActiveUser=ActiveUser+@ActiveUser,DealTotal=DealTotal+@DealTotal,AccessNun=AccessNun+@AccessNun where id=1; end $$ DELIMITER ;
mysql定时器,触发器,
猜你喜欢
转载自blog.csdn.net/qq_26959879/article/details/79917604
今日推荐
周排行