mysql命令行创建存储过程命令行定时执行sql语句

时间:2022-02-12 12:29:17
 mysql -uroot -p

show databases;

use scm;

show tables;

show procedure status;

其他命令:

SHOW VARIABLES LIKE 'event_scheduler'; 看事件是否启动【用于定时执行时候检查】

SET GLOBAL event_scheduler = ON; 命令行开启事件【如果没有开启就手动命令开启】

SELECT HOST,USER,Event_priv FROM mysql.user; 本机权限


【执行存储过程】
call avgUpdatePice(); 

命令行创建存储过程执行日志表

/*============================*/
/* Table: 存储过程运行日志表结构 */
/*============================*/
create table pro_log
(
/* 日志编号,自动增长 */
pro_id int not null auto_increment,
/* 存储过程名字 */
pro_name varchar(20),
/* 存储过程执行产生的信息*/
pro_remark varchar(20),
/* 存储过程执行的时间 */
pro_date datetime,
/* 设置日志编号为主键 */
primary key (pro_id)
);

测试

insert   into pro_log(pro_name,pro_remark,pro_date)
values ('avgUpdatePrice','','2015-03-09');

命令行创建存储过程

delimiter //
CREATE PROCEDURE avgUpdatePice()
BEGIN
DECLARE iCount INT DEFAULT 0;
create table avg_prices as
select goods_id,goods_type,goods_name,in_buy_price,ROUND(sum(in_total_price)/sum(in_amount),2) as 'junjia',NOW(),count(*) from scm.in_warehouse_detail
group by goods_id,goods_type,goods_name
order by goods_id,goods_type,goods_name;
select count(*) into iCount from goods g,avg_prices a
where g.goods_Id = a.goods_id
and g.goods_sel_price != a.junjia
and g.goods_buy_price != a.junjia;
if iCount > 0 then
update avg_prices a,goods g set g.goods_buy_price = a.junjia
where g.goods_Id = a.goods_id and g.goods_sel_price != a.junjia ;
end if;
insert into pro_log(pro_name,pro_remark,pro_date) values ('avgUpdatePice',iCount,NOW());
DROP TABLE IF EXISTS avg_prices;
END; // delimiter ;

测试【执行存储过程】

call avgUpdatePice(); 

命令行创建每日定时自动执行脚本

-----------------------------每天定时执行存储过程 在命令行里执行一次加入就可以了--------------------------------------------------------------------

CREATE EVENT course_avgUpdatePice
ON SCHEDULE EVERY 1 DAY STARTS '2016-04-21 21:30:00'
ON COMPLETION PRESERVE
ENABLE
DO
call avgUpdatePice();
 
 

mysql命令行创建存储过程命令行定时执行sql语句的更多相关文章

  1. SQlServer2008 之 定时执行sql语句作业的制定

    1.打开[SQL Server Management Studio],在[对象资源管理器]列表中选择[SQL Server 代理]: 2.鼠标右击[SQL Server 代理],选择[启动(S)],如 ...

  2. SQL Server 定时执行SQL语句的方法

    SQL SERVER 定时任务,你可以启动一下.不过要想更加直观的控制,直接写一个程序,定时执行你的存储过程. 1.设置“SQL Server 代理”(SQL Server Agent)服务随系统启动 ...

  3. Linux课程---5、常用文件命令和目录命令(创建文件命令)

    Linux课程---5.常用文件命令和目录命令(创建文件命令) 一.总结 一句话总结: touch file1 1.管道符|有什么用? 将前一个命令的结果作为后一个命令的输入:比如查看文件前3行:ca ...

  4. C#创建windows服务并定时执行

    一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在Service1.cs添加如下代码: System.Tim ...

  5. linux创建定时任务,定时执行sql

    终于弄清楚一个问题了.linux创建定时任务,定时执行sql,其中分为两个case. case-1 sql语句较少,因此直接在 shell脚本中 写sql语句.如下: [oracle@Oracle11 ...

  6. 如何用VS EF连接 Mysql,以及执行SQL语句 和存储过程?

    VS2013, MySQL5.7.18 , MySQL5.7.14 执行SQL语句: ztp_user z = new ztp_user(); object[] obj = new object[] ...

  7. EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值

    一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为  -1 ,sqlserver 里面  还没有测试过 using (var ctx = new MyDbConte ...

  8. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  9. 解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集

    character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. characte ...

随机推荐

  1. Distributed2:Linked Server Login 添加和删除

    一,通过 sys.sp_addlinkedsrvlogin 创建Linked Server的Login 当在local Server 上需要访问Linked Server时,Local Server ...

  2. JS获得事件发出者

    因为ff下本身不支持srcElement而是支持target,你这里这么用也是为了兼容浏览器,但是event.srcElement.id这么写会从event.srcElement里找id属性,这样是默 ...

  3. nginx 详解

    #运行用户 #user  nobody;   #启动进程,通常设置成和cpu的数量相等或者2倍于cpu的个数(具体结合cpu和内存).默认为1 worker_processes  1;   #全局的错 ...

  4. ARC模式下的单例写法

    // 单例 + (id)sharedInstance { __strong static id sharedObject = nil; static dispatch_once_t onceToken ...

  5. iOS学习笔记-CoreData

    简介 CoreData提供了对象关系映射(ORM)功能,从效果上说就是创建了一个"虚拟对象数据库",也可以把它看作一个综合的数据库管理库. NSManagedObjectConte ...

  6. Sending HTML Form Data

    public Task<HttpResponseMessage> PostFormData(){ // Check if the request contains multipart/fo ...

  7. ORA-19815,ORA-19809 :limit exceeded for recovery files

    数据库重新启动的时候,收到了ORA-19815的错误.从错误的提示来看,是由于闪回区的空间被填满导致无法成功启动.这种情形我们通常考虑的是清除归档日志,那就直接在OS层面rm了,真的是这样吗?客官,如 ...

  8. Linux ①

    目录 一.计算机简单认识 二.linux初始 三.安装虚拟机 四.安装Linux系统 五. 使用xshell 6 进行远程控制 六.linux文档与目录结构 七.常用命令 一.计算机简单认识 1.服务 ...

  9. &commat;Transactional 事务说明

    这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计.编码考虑.不能仅仅完成了基本功能就ok.B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常.测试回滚),确保事务生效.C ...

  10. 序言:我为什么学Perl

    曾经,我熟练操作grep.awk.sed,甚至自认对sed尚算精通,我一度爱上了写脚本.但是随着写脚本的次数多了,需求复杂了,我深深的感受到shell的无奈. 例如,我多次遇到过类似下面这种恶心的需求 ...