以下的文章主要是介绍MySQL 触发器,存储过程以及函数与视图的实例演示过程,以下就是触发器,存储过程以及函数与视图的具体操作方案的描述,希望在你今后的学习中会对你有所帮助。
MySQL 触发器,存储过程以及函数与视图的实例演示:
0.test数据库有userinfo用户信息表 和userinfolog用户信息日志表
1.建立一个userinfo表新增记录时的MySQL 触发器 将新增日志加入到userinfolog
2.建立一个向userinfo表新增记录的存储过程
3.根据userinfo表的出生日期字段 我们将建立一个简单算得年龄的自定义函数
4.创建一个userinfo的视图 调用年龄函数
0.准备相关表
MySQL> use test;  MySQL> create table userinfo(userid int,username varchar(10),userbirthday date);  MySQL> create table userinfolog(logtime datetime,loginfo varchar(100));  MySQL> describe userinfo; 
 1.MySQL 触发器 MySQL> delimiter |  MySQL> create trigger beforeinsertuserinfo  -> before insert on userinfo  -> for each row begin  -> insert into userinfolog values(now(),CONCAT(new.userid,new.username));  -> end;  -> |  MySQL> delimiter ;  MySQL> show triggers; 
 2.存储过程 MySQL> delimiter //  MySQL> create procedure spinsertuserinfo(  -> puserid int,pusername varchar(10)  -> ,puserbirthday date  -> )  -> begin  -> insert into userinfo values(puserid,pusername,puserbirthday);  -> end;  -> //  MySQL> show procedure status like 'spinsertuserinfo';  MySQL> call spinsertuserinfo(1,'zhangsan',current_date);  MySQL> select * from userinfo; 
 3.自定义函数 MySQL> update userinfo  -> set userbirthday='2000.01.01' -> where userid='1';  MySQL> drop function if exists fngetage;  MySQL> delimiter //  MySQL> create function fngetage(pbirthday date)  -> returns integer  -> begin  -> return year(now()) - year(pbirthday);  -> end  -> // 
 4.视图 MySQL> create view viewuserinfo  -> as select * ,fngetage(userbirthday) as userage from userinfo;  MySQL> select * from viewuserinfo; 
 清除日志记录 MySQL> truncate table userinfolog;  MySQL> delete from userinfolog; 
 上面说了这么多内容,是关于对MySQL 触发器 存储过程 函数 视图的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注ITJS,学习最新Mysql技术。

