美文网首页
Mysql数据库存储过程、触发器和计划任务

Mysql数据库存储过程、触发器和计划任务

作者: 刘小白DOER | 来源:发表于2021-01-15 22:02 被阅读0次

    存储过程Stored Procedur是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行,数据库 SQL 语言层面的代码封装与重用。

    触发器trigger是一种特殊类型的存储过程,它不同于存储过程,主要是通过事件触发 insert,delete, update)而被执行的。

    计划任务,即事件调度器(Event Scheduler),可以用做定时执行某些特定任务,精确到秒。

一、存储过程

1、数据表结构

2、创建存储过程生成1000万行数据,本文是利用phpmyadmin来可视化建立,也可以在命令行输入来建立。

DROP PROCEDURE IF EXISTS proc1;

DELIMITER $$  

SET AUTOCOMMIT = 0$$

CREATE PROCEDURE proc1()

BEGIN

DECLARE v_cnt DECIMAL(10) DEFAULT 0 ;

dd:LOOP  

INSERT INTO card (card_number) VALUES(UUID());

COMMIT;

SET v_cnt = v_cnt+1 ;

IF  v_cnt = 10000000 THEN LEAVE dd;

END IF;

END LOOP dd ;

END;$$

DELIMITER ; 

3、执行call proc1,看电脑性能,笔者使用了3分20秒。

二、触发器

    再建立一个同样结构的表card_old,在删除表card的数据后会将数据插入到表card_old,保存删除的数据。触发器使通过事件触发而被执行的,当对一个表进行操作DML操作( insert,delete, update)时就会激活它执行。可以使用old和new来引用触发器中发生变化的记录内容。

    本文时使用的phpmyadmin来可视化建立触发器,也可以通过使用Navicat for MySQL创建触发器,也可以使用命令行来建立。

create trigger trash

after insert on card for each row

begin

insert into card_old (card_id, card_number) values( old.card_id, old.card_number)

end;

三、计划任务

    mysql schedule可以很灵活地去控制任务,本文是每隔一秒(运行周期可设)插入数据,计划任务可以定时调用存储过程来完成一系列sql集合。

    计划任务需要设置开关才会失效  SET GLOBAL event_scheduler="ON" 。

    命令行创建计划任务:

create event test1

on schedule every 1 day

starts  '2021-01-01 12:00:00'

on completion not preserve

do INSERT INTO card (card_number) VALUES (UUID());

相关文章

  • MySQL-触发器

    MySQL 数据库中触发器是一个特殊的存储过程,不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不...

  • MySQL 视图和存储程序

    MySQL 视图和存储程序 存储程序:存储函数、存储过程、触发器和事件的总称。 存储例程:存储函数+存储过程。 触...

  • 2019-07-08

    数据库 MySQL数据库的基本操作(增删改查)高级操作视图备份和还原事务触发器函数存储过程 什么是数据库?数据库(...

  • Mysql数据库存储过程、触发器和计划任务

    存储过程Stored Procedur是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指...

  • Mysql与Pymysql

    这次介绍mysql以及在python中如何用pymysql操作数据库, 以及在mysql中存储过程, 触发器以及事...

  • PL/SQL之存储过程

    存储过程、存储函数和触发器 存储过程和存储函数定义:指存储在数据库中供所有用户程序调用的子程序叫存储过程或存储函数...

  • MySQL优化

    mysql-基础-视图,存储过程,触发器 面试题 面试你所要知道的:MySQL存储过程 https://blog....

  • 浅谈数据库中的触发器

    触发器概念:触发器是数据库中一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要通过事件(增删...

  • mysql视图,触发器,存储过程优缺点及应用分析

    mysql视图,触发器,存储过程优缺点及应用分析 视图 mysql使用较少,是sql server和orcale使...

  • mysql 数据库的丰富功能:函数、触发器、存储过程

    当我们围绕数据库进行开发时,充分利用mysql的函数、触发器、存储过程等,可以将工作集中在数据库本身,而且更为...

网友评论

      本文标题:Mysql数据库存储过程、触发器和计划任务

      本文链接:https://www.haomeiwen.com/subject/asxgaktx.html