【数据库】Oracle与MySql定时器使用

一、Oracle 创建定时器

对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:

在总结之前,先把Job的参数一一说明一下:

job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作;

what参数是将被执行的PL/SQL代码块;

next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;

interval参数何时这个工作将被重执行。

其中Interval这个值是决定Job何时,被重新执行的关键。

例如:有存储过程 p_dosomethings,需要被不同的时间间隔执行。

 1 declare   
 2   jobno number;   
 3 begin   
 4   dbms_job.submit(
 5     jobno,
 6      ' p_dosomething; ' ,   -- what
 7     to_date( ' 20090101020000 ' , ' yyyy-mm-dd hh24:mi:ss ' ), -- next_date,可以不填
 8      ' Interval时间字符串 ' -- interval,关键设置
 9   );   
10   commit;   
11 end; 
12


1、 每分钟执行

Interval => TRUNC(sysdate,’mi’) + 1 / (24*60)

2、 每天定时执行

例如:每天的凌晨2点执行

Interval => TRUNC(sysdate) + 1 +2 / (24)

3、 每周定时执行

例如:每周一凌晨2点执行

Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天

4、 每月定时执行

例如:每月1日凌晨2点执行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24

5、 每季度定时执行

例如每季度的第一天凌晨2点执行

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24

6、 每半年定时执行

例如:每年71日和11日凌晨2

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24

7、 每年定时执行

例如:每年11日凌晨2点执行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24

当然上面罗列不可能照顾到方方面面,但是稍微变化一下,就能衍生出无数的例子,聪明的你一定会的吧,我这里就不多罗嗦了。


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 primary key(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 exists eventJob 
    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;  -- 关闭事件
<span style="font-family:宋体;font-size:10pt">    SHOW VARIABLES LIKE '%sche%'; -- 查看定时器状态</span>
至此,你去数据库里面的表mytable里面看下,系统会每隔一秒去插入一条数据,嘻嘻,任务完成了。
select * from mytable



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Livechart是一个动画播放表网站,它提供了各种动画作品的播放时间表和相关的信息。与数据库的关联是指将Livechart所提供的数据数据库进行连接、查询和更新操作。 Livechart通常会使用数据库来存储和管理其所维护的动画播放信息。数据库可以是关系型数据库(如MySQLOracle)或非关系型数据库(如MongoDB、Redis)。 首先,需要设计数据库表格来存储动画作品的相关信息,如作品名称、播放时间、制作公司、声优等。这些信息可以作为表格的字段,以便于查询和管理。 然后,通过与数据库建立连接,可以在Livechart网站上实现动画播放时间表的实时更新。当播放时间发生变化或新的动画作品推出时,可以通过向数据库插入、更新或删除记录来反映这些变化。这样,用户访问网站时就可以获取到最新的动画播放信息。 此外,还可以通过数据库的查询功能提供更多的动画信息。例如,根据用户的喜好,可以查询数据库中与之相关的动画作品,或根据特定条件(如类型、制作公司)进行筛选和排序。 另外,数据库还可以用于存储用户的收藏和评论信息。用户可以在网站上注册账号,将自己喜欢的动画作品加入收藏夹,并对这些作品进行评论和评分。这些用户相关的信息也可以通过数据库进行管理和查询。 总之,通过与数据库的关联,Livechart能够实现动画播放时间表的实时更新,并提供更多的动画信息和用户相关功能,为用户提供更好的体验。 ### 回答2: Livechart与数据库之间的关联是通过数据的提取、存储和更新来实现的。 首先,我们需要建立一个数据库,可以选择关系型数据库(如MySQLOracle)或非关系型数据库(如MongoDB)。数据库中需要创建与Livechart相关的表格,包括用户信息、视频信息、评论信息等。 Livechart系统会通过调用数据库的API接口,将需要的数据数据库中提取出来。例如,在用户登录时,Livechart会验证用户名和密码的正确性,通过查询数据库中的用户表格进行比对。如果比对成功,用户将被允许登录,否则将被拒绝访问。 在用户使用Livechart浏览和搜索视频时,系统会根据用户的请求调用数据库接口,将匹配的视频信息从数据库中提取出来,以供用户浏览。视频信息可以包括标题、类型、时长、发布日期等。用户可以对视频进行评论,评论的相关信息也会存储在数据库中,以便其他用户浏览。 当有新的视频发布时,系统会将视频信息存储到数据库中,以便后续的搜索和推荐。如果有用户对视频进行了更新、删除等操作,系统会通过数据库接口将相应的数据更新或删除。 Livechart与数据库的关联还可以用于数据分析和统计。系统可以通过查询数据库中的数据,分析用户的观看喜好、评论情况等,以便提供更准确的推荐和个性化的服务。 总结而言,Livechart与数据库的关联是通过提取、存储和更新数据来实现的,它支持用户登录验证、视频浏览和评论等功能,并提供数据分析和统计的支持。 ### 回答3: Livechart与数据库关联是指将Livechart这个动态图表工具与数据库进行连接和交互操作。通过与数据库的关联,Livechart可以从数据库中获取数据,并将这些数据用于生成动态图表。 首先,需要建立数据库数据表,以存储Livechart所需的数据。可以使用关系型数据库MySQL或PostgreSQL,也可以选择非关系型数据库如MongoDB。 接下来,在Livechart中使用相应的数据库连接库来连接数据库。根据数据库类型和连接库,可以提供数据库的连接字符串来指定连接的数据库和相关配置。 一旦连接成功,就可以使用SQL查询语句从数据库中获取相关数据。查询的结果可以是特定的数据行或整个表的数据,这些数据将作为输入用于动态图表的生成。 在获取数据后,可以使用Livechart的API或相关函数来生成图表。可以根据数据的格式和图表的需求选择不同的图表类型,如折线图、柱状图、饼图等。此外,还可以根据需要添加图例、标签和其他修饰元素,使生成的图表更具可读性和美观性。 同时,为了实现数据的实时更新,可以使用定时器或其他方式定期从数据库中获取最新数据并更新图表。这样,当数据库中的数据发生变化时,Livechart会自动更新图表以反映最新的信息。 最后,通过将Livechart嵌入到网页或应用程序中,用户就可以通过访问网页或打开应用程序来查看和交互使用图表,从而实现与数据库的关联。 总之,通过将Livechart与数据库关联,可以实现动态图表的生成和实时更新,使得数据更加直观、易懂,并为用户提供更好的数据分析和决策支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值