当前位置:首页 » 存储配置 » 怎么执行mysql存储

怎么执行mysql存储

发布时间: 2025-10-12 00:13:48

‘壹’ mysql带参数的存储过程怎么调用

调用MySQL存储过程使用CALL命令
语法:CALL 存储过程名(参数1[,参数2..]]);
例如:
Call myPro1;
Call myPro2('001');

‘贰’ MySQL中使用EXEC命令的方法详解mysql中exec

MySQL是一种流行的开源数据库管理系统,它支持多种编程语言,包括C、Python和Java等。MySQL作为一种强大的数据库管理系统,为开发人员提供了多种命令来管理和查询数据。其中EXEC命令是,一种在MySQL中执行脚本的重要命令。在本篇文章中,我们将详细讲解MySQL中使用EXEC命令的方法。
1. EXEC命令简介
EXEC是MySQL中的一个命令,可以将脚本文件读入MySQL客户端并运行。在MySQL中,可以使用该命令来执行存储过程、触发器、函数和视图等各种类型的对象。EXEC命令的语法如下:
EXECUTE sql_statement;
其中sql_statement是存储过程、触发器、函数或视图的SQL语句。
2. EXEC命令的优点
使用EXEC命令有许多好处,如下述:
(1)执行存储对象:可以执行存储对象,包括存储过程、触发器、函数和视图等。
(2)优化查询:可以优化查询,减少查询时间。
(3)使用脚本文件:可以使用脚本文件来进行批处理操作,提高数据处理效率。
3. EXEC命令的应用
EXEC命令具有广泛的应用,可以执行各种类型的SQL查询。下面我们将具体介绍如何使用EXEC命令来执行存储过程。
我们需要创建一个名为”AddEmployee”的存储过程,该存储过程将接收三个参数:EmployeeName,EmployeeSalary和EmployeeAge,然后将这些参数插入到一个名为”employee”的表中。
示例代码如下:
CREATE PROCEDURE AddEmployee (
EmployeeName VARCHAR(255),
EmployeeSalary INT,
EmployeeAge INT
)
BEGIN
INSERT INTO employee (name, salary, age) VALUES (EmployeeName, EmployeeSalary, EmployeeAge);
END;
我们可以在MySQL客户端中调用该存储过程,如下述:
EXECUTE AddEmployee(‘John’, 50000, 25);
该语句将在employee表中插入一条数据,其中包括”John”、50000和25,表示员工的姓名、薪资和年龄。
4. 总结
MySQL中的EXEC命令是执行存储过程、触发器、函数和视图等对象的重要工具。使用该命令可以提高查询效率,优化数据处理操作。在本文中,我们对MySQL中使用EXEC命令的方法进行了详细的讲解,希望能对开发人员有所帮助。

‘叁’ MySQL里面sql语句调用存储过程,该如何写

这样:

CREATEPROCEDUREsp_add(a int, b int,outc int)

begin

set c=a+ b;

end;

调用过程:

call sp_add (1,2,@a);

select @a;

(3)怎么执行mysql存储扩展阅读:

注意事项

存储过程(stored procere)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。

存储过程分为系统存储过程和自定义存储过程。

系统存储过程在master数据库中,但是在其他的数据库中可以直接调用,并且在调用时不必在存储过程前加上数据库名,因为在创建一个新数据库时,系统存储过程在新的数据库中会自动创建。

自定义存储过程,由用户创建并能完成某一特定功能的存储过程,存储过程既可以有参数又有返回值,但是它与函数不同,存储过程的返回值只是指明执行是否成功,并不能像函数那样被直接调用,只能利用execute来执行存储过程。

创建存储过程

SQL Server创建存储过程:

create procere 过程名

@parameter 参数类型

@parameter 参数类型

。。。

as

begin

end

执行存储过程:execute 过程名

‘肆’ mysql执行存储过程语句怎么写

mysql用call命令执行存储过程,例如

calluser_add();

上面的sql就执行了一个名字叫user_add的存储过程

‘伍’ mysql怎么让一个存储过程定时执行

mysql怎么让一个存储过程定时执行
查看event是否开启: show variables like '%sche%';
将事件计划开启: set global event_scheler=1;
关闭事件任务: alter event e_test ON COMPLETION PRESERVE DISABLE;
开户事件任务: alter event e_test ON COMPLETION PRESERVE ENABLE;

简单实例.
创建表 CREATE TABLE test(endtime DATETIME);

创建存储过程test
CREATE PROCEDURE test ()
BEGIN
update examinfo SET endtime = now() WHERE id = 14;
END;

创建event e_test
CREATE EVENT if not exists e_test
on schele every 30 second
on completion preserve
do call test();

每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去

1) 首先来看一个简单的例子来演示每秒插入一条记录到数据表

USE test;
CREATE TABLE aaa (timeline TIMESTAMP);
CREATE EVENT e_test_insert
ON SCHEDULE EVERY 1 SECOND
DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP);
等待3秒钟后,再执行查询看看:

mysql> SELECT * FROM aaa;
+---------------------+
| timeline |
+---------------------+
| 2007-07-18 20:44:26 |
| 2007-07-18 20:44:27 |
| 2007-07-18 20:44:28 |
+---------------------+
2) 5天后清空test表:

CREATE EVENT e_test
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
3) 2007年7月20日12点整清空test表:

CREATE EVENT e_test
ON SCHEDULE AT TIMESTAMP '2007-07-20 12:00:00'
DO TRUNCATE TABLE test.aaa;
4) 每天定时清空test表:

CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
DO TRUNCATE TABLE test.aaa;
5) 5天后开启每天定时清空test表:

CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
6) 每天定时清空test表,5天后停止执行:

CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
7) 5天后开启每天定时清空test表,一个月后停止执行:

CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH
DO TRUNCATE TABLE test.aaa;
[ON COMPLETION [NOT] PRESERVE]可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。
8) 每天定时清空test表(只执行一次,任务完成后就终止该事件):

CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
ON COMPLETION NOT PRESERVE
DO TRUNCATE TABLE test.aaa;
[ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。
[COMMENT ‘comment’]可以给该事件加上注释。

三、修改事件(ALTER EVENT)
ALTER EVENT event_name
[ON SCHEDULE schele]
[RENAME TO new_event_name]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
[DO sql_statement]
1) 临时关闭事件

ALTER EVENT e_test DISABLE;
2) 开启事件

ALTER EVENT e_test ENABLE;
3) 将每天清空test表改为5天清空一次:

ALTER EVENT e_test
ON SCHEDULE EVERY 5 DAY;
四、删除事件(DROP EVENT)
语 法很简单,如下所示:

DROP EVENT [IF EXISTS] event_name
例如删除前面创建的e_test事件

DROP EVENT e_test;
当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS

DROP EVENT IF EXISTS e_test;

create event test
ON SCHEDULE AT '2007-09-01 12:00:00' + INTERVAL 1 DAY
on completion not preserve
do insert into yyy values('hhh','uuu');

解释:从2007-09-01开始,每天对表yyy在12:00:00进行一个插入操作。而且只执行一次(on completion not preserve )

我的计划任务为:

create event sysplan
ON SCHEDULE AT '2010-05-22 23:00:00' + INTERVAL 1 DAY
on completion not preserve
do truncate table bjproj.ae_tmp;

三、通过设定全局变量event_scheler 的值即可动态的控制事件调度器是否启用。
查看是否event_scheler开启mysql> SHOW VARIABLES LIKE '%event%';
设置开启mysql> SET GLOBAL event_scheler=ON;
四、例子:

分钟插入一条日志:DELIMITER //CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1
MINUTE STARTS '2010-12-27 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO
BEGIN INSERT INTO log SET addtime=NOW();END//
调用存储过程:DELIMITER
//CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 DAY STARTS
'2010-00-00 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
CALL user_log_prov();END//

热点内容
ftp源码上传 发布:2025-10-12 03:59:33 浏览:333
经典的c语言书籍 发布:2025-10-12 03:59:01 浏览:729
java集合比较 发布:2025-10-12 03:51:58 浏览:391
网吧如何设置副服务器 发布:2025-10-12 03:46:23 浏览:890
编程感言 发布:2025-10-12 03:46:13 浏览:676
油猴脚本显示此脚本未被执行 发布:2025-10-12 03:45:30 浏览:38
windows安装php环境 发布:2025-10-12 03:18:52 浏览:766
杭州危险品安全存储柜 发布:2025-10-12 02:34:14 浏览:286
vivo手机密码错误多少次锁机 发布:2025-10-12 02:18:59 浏览:896
王者荣耀该怎么卸载服务器 发布:2025-10-12 02:13:58 浏览:718