如何测试mysql触发器和存储过程

 更新时间:2012年11月19日 16:09:37   作者:  
本文将详细介绍怎样mysql触发器和存储过程,需要了解的朋友可以详细参考下
1. 为了测试触发器和存储过程,首先建立一张简单的表:
复制代码 代码如下:

CREATE TABLE `airuser` (
`userId` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(128) NOT NULL,
PRIMARY KEY (`userId`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8

2. 为该表的插入操作,创建一张记录表:
复制代码 代码如下:

CREATE TABLE `airuser_record` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(45) DEFAULT NULL,
`edittime` timestamp NULL DEFAULT NULL,
`edittype` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

3. 编写一个插入操作的触发器:
复制代码 代码如下:

DROP TRIGGER insert_trigger;
delimiter |
CREATE TRIGGER insert_trigger BEFORE INSERT ON airuser
FOR EACH ROW BEGIN
INSERT INTO airuser_record SET username = NEW.username, edittime=now(), edittype='insert';
END;

SHOW TRIGGERS;

4. 为批量插入编写存储过程:
复制代码 代码如下:

DROP procedure createUsers;
delimiter |
create procedure createUsers(IN count int)
begin
declare i int;
set i=0;
while i<count do
insert into airuser set username=concat('user_',i);
set i=i+1;
end while;
end;

show procedure status;

5. 调用存储过程,验证存储过程是工作的,并验证在插入记录前,触发器能正确被触发:
复制代码 代码如下:

call createUsers(10);

6. 最后通过插入记录表再次验证:
复制代码 代码如下:

SELECT * FROM mars_jpa.airuser_record;

相关文章

  • MySQL分页技术、6种分页方法总结

    MySQL分页技术、6种分页方法总结

    这篇文章主要介绍了MySQL分页技术、6种分页方法总结,本文总结了6种分页的方法并分别一一讲解它们的特点,需要的朋友可以参考下
    2015-07-07
  • mysql5.7.19 zip 详细安装过程和配置

    mysql5.7.19 zip 详细安装过程和配置

    本文详细给大家介绍了mysql5.7.19 zip 详细安装过程和配置,感兴趣的朋友一起看看吧
    2017-10-10
  • Mysql 5.6.24安装实例教程

    Mysql 5.6.24安装实例教程

    这篇文章主要介绍了Mysql 5.6.24安装实例教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • MySQL在多表上创建视图方法

    MySQL在多表上创建视图方法

    本篇文章给大家分享了MySQL在多表上创建视图方法以及相关技巧,有需要的朋友参考学习下。
    2018-06-06
  • MySQL 字符串函数大全

    MySQL 字符串函数大全

    如果字符串函数提供一个二进制字符串作为参数,结果字符串也是一个二进制字符串。被变换到一个字符串的数字被当作是一个二进制字符串。这仅影响比较 .
    2009-07-07
  • mysql 大表批量删除大量数据的实现方法

    mysql 大表批量删除大量数据的实现方法

    这篇文章主要介绍了mysql 大表批量删除大量数据的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 为什么Mysql 数据库表中有索引还是查询慢

    为什么Mysql 数据库表中有索引还是查询慢

    这篇文章主要介绍了为什么Mysql数据库表中有索引还是查询慢,以 user_info 这张表来作为分析的基础,在 user_info 这张表上,我们分别创建了idx_name以及idx_phone 二级索引以及 idx_age_address 联合索引展开详细内容,需要的小伙伴可以参考一下
    2022-05-05
  • Mysql中LEFT JOIN和JOIN查询区别及原理详解

    Mysql中LEFT JOIN和JOIN查询区别及原理详解

    这篇文章主要介绍了Mysql中LEFT JOIN和JOIN查询区别及原理详解,Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果,需要的朋友可以参考下
    2023-08-08
  • Mysql一些复杂的sql语句(查询与删除重复的行)

    Mysql一些复杂的sql语句(查询与删除重复的行)

    这篇文章主要介绍了Mysql一些复杂的sql语句(查询与删除重复的行),需要的朋友可以参考下
    2017-05-05
  • 详解关于MySQL 8.0走过的坑

    详解关于MySQL 8.0走过的坑

    这篇文章主要介绍了详解关于MySQL 8.0走过的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09

最新评论