以下的文章主要是介绍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技术。