关于SqlServer和MySql数据库如何做一个定时执行任务

转载请标明出处:
https://blog.csdn.net/weixin_41965979/article/details/90700370
本文出自付付讶的博客

最近开发项目遇到一个需要每天定时清除过期的数据 . 实现定时自动处理的功能 

以前都是在代码里写定时任务

今天在网上查了一些直接在数据库里操作的方法,SqlServerMySql都成功了,遂总结一下。

一:SqlServer2008数据库

1:打开sqlserver数据库,进入“SQL Server代理”,看到“作业”,选择“作业”右键,点击“新建作业”,

2:进去后选择第一个“常规”,填写“名称”,类别选择“数据库维护”,说明可填可不填

3:然后选择第二个步骤,点击新建,输入步骤名称,选择你自己的数据库,在命令里输入你要执行的sql语句

4:然后选择第三个计划,点击新建,填写名称,根据自己的需要来选择频率和时间点和日期,我这是让它每天下午4点37执行,

执行的是你上面命令里写的sql语句

5:执行结果展示(我的sql语句写的是修改ipTable里的number值,需求是每天到点给它清零)

这张图是16:36分的时候,我的number值为5,我设的执行时间为16:37分

16:37分的时候,我刷新数据库,已经变成0了

二、MySql数据库-For使用navicat11.2.7版本

1、启动navicat,连接数据库。

2、可以先查看定时任务的是否开启。通过以下命令:

show variables like '%sche%';

3、如果其设置值为为 OFF 或 0 ,通过执行下列语句,来开启event_scheduler,把它设置为设为ON 或 1。

set global event_scheduler =1 

4、新建一个函数,选择过程,点击完成。

 

 5、写上你要执行的sql语句,ctril+s保存输入你的过程名。

6、新建事件,在定义里写: call deletePatrolTrack()  --也就是之前定义的函数过程名。

      选择旁边的“计划”选项卡,选中EVERY,填上1、DAY(顾名思义就是每天执行的意思),勾上STARTS,填上你的开始时间,        然后ctril+s输入名称保存就行。 ENDS就是结束时间,这里大家根据自己的需要去填写就行!

      

以下是使用 JDBC 技术将 SQL Server 和 MySQL 数据库连接起来,实现实时或定时SQL Server 中读取数据并写入到 MySQL 数据库中的具体步骤: 1. 下载并安装 SQL Server 和 MySQL 的 JDBC 驱动程序。本步骤的具体过程请参考对应的官方文档。 2. 编写 Java 代码,使用 JDBC API 连接 SQL Server 和 MySQL 数据库。可以使用以下代码片段作为参考: ```java //加载 SQL Server 驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //连接 SQL Server 数据库 Connection sqlServerConn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=myDatabase", "username", "password"); //加载 MySQL 驱动 Class.forName("com.mysql.jdbc.Driver"); //连接 MySQL 数据库 Connection mySqlConn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/myDatabase", "username", "password"); ``` 3. 编写 SQL 查询语句,从 SQL Server 中读取数据。可以使用以下代码片段作为参考: ```java //创建 SQL Server 查询语句 String sql = "SELECT * FROM myTable"; //创建 SQL Server 查询语句的 Prepared Statement PreparedStatement ps = sqlServerConn.prepareStatement(sql); //执行查询 ResultSet rs = ps.executeQuery(); ``` 4. 将从 SQL Server 中读取到的数据写入到 MySQL 数据库中。可以使用以下代码片段作为参考: ```java //创建 MySQL 插入语句 String sql = "INSERT INTO myTable VALUES (?, ?, ?)"; //创建 MySQL 插入语句的 Prepared Statement PreparedStatement ps = mySqlConn.prepareStatement(sql); //循环遍历 SQL Server 查询结果集 while (rs.next()) { //将查询结果集中的值赋值给 MySQL 插入语句的参数 ps.setString(1, rs.getString("column1")); ps.setInt(2, rs.getInt("column2")); ps.setDate(3, rs.getDate("column3")); //执行 MySQL 插入语句 ps.executeUpdate(); } ``` 5. 关闭连接和资源。可以使用以下代码片段作为参考: ```java //关闭结果集 rs.close(); //关闭 SQL Server 连接和资源 ps.close(); sqlServerConn.close(); //关闭 MySQL 连接和资源 ps.close(); mySqlConn.close(); ``` 需要注意的是,以上仅为实现 SQL Server 和 MySQL 数据库连接并进行数据同步的基本步骤,具体实现过程可能会因具体业务需求而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值