每天定时执行存储过程

1.创建存储过程 

CREATE  PROCEDURE `update_cloud_componentrepairrecorTime`()

BEGIN
update cloud_componentrepairrecord
set
 StartTime = now(),
 Endtime =  date_add( now() , INTERVAL   datediff(Starttime ,Endtime) day )
 where endtime<=now();
END 

 

 2.定时执行

CREATE EVENT event_update_cloud_componentrepairrecorTime

ON SCHEDULE EVERY 1 DAY STARTS '2018-06-01 00:00:00'
ON COMPLETION PRESERVE
ENABLE
DO call update_cloud_componentrepairrecorTime();
posted on 2018-06-02 09:44  笨小孩做开发 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/dullbaby/p/9124541.html

给定的参考引用中未提及在DBeaver中定时执行存储过程的实现方法。一般而言,在DBeaver中定时执行存储过程可以通过以下通用思路实现: ### 利用数据库自身的定时任务功能 不同的数据库有不同的定时任务机制,例如: - **MySQL**:可以使用事件调度器(Event Scheduler)。首先要确保事件调度器是开启状态,可以通过以下SQL语句查看和设置: ```sql -- 查看事件调度器状态 SHOW VARIABLES LIKE 'event_scheduler'; -- 开启事件调度器 SET GLOBAL event_scheduler = ON; ``` 然后创建一个事件来定时执行存储过程,示例如下: ```sql -- 创建一个每天凌晨2点执行的事件 CREATE EVENT IF NOT EXISTS execute_my_procedure ON SCHEDULE EVERY 1 DAY STARTS '2024-01-01 02:00:00' DO CALL your_stored_procedure(); ``` 在DBeaver中,可以直接在SQL编辑器中执行上述SQL语句来创建和管理定时任务。 - **SQL Server**:可以使用作业(Job)来实现定时任务。在DBeaver中可以通过以下步骤操作: 1. 连接到SQL Server数据库。 2. 展开“SQL Server Agent”节点。 3. 右键点击“作业”,选择“新建作业”。 4. 在作业属性中配置作业步骤,指定要执行的存储过程;配置作业计划,设置执行的时间和频率。 ### 使用第三方工具 可以借助一些第三方的定时任务管理工具,如Quartz(Java开发),可以编写Java代码来调用DBeaver的API(如果有)或者直接连接数据库执行存储过程,并设置定时任务。以下是一个简单的Quartz示例: ```java import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import static org.quartz.JobBuilder.newJob; import static org.quartz.SimpleScheduleBuilder.simpleSchedule; import static org.quartz.TriggerBuilder.newTrigger; public class DatabaseJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { try { // 连接数据库 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password"); Statement statement = connection.createStatement(); // 执行存储过程 statement.execute("CALL your_stored_procedure()"); statement.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws SchedulerException { // 创建调度器 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // 定义一个作业 JobDetail job = newJob(DatabaseJob.class) .withIdentity("databaseJob", "group1") .build(); // 定义一个触发器,每5分钟执行一次 Trigger trigger = newTrigger() .withIdentity("trigger1", "group1") .startNow() .withSchedule(simpleSchedule() .withIntervalInMinutes(5) .repeatForever()) .build(); // 将作业和触发器添加到调度器 scheduler.scheduleJob(job, trigger); // 启动调度器 scheduler.start(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值