实现MySQL触发器的实际操作步骤
程序员文章站
2022-06-15 16:41:24
...
以下的文章主要讲述的是实现MySQL触发器的实际操作步骤、以及存储过程、自定义函数与视图的简单示例介绍,如果你对MySQL触发器的实际操作步骤以及存储过程的实际操作感兴趣的话,你就可以浏览以下的文章了,示例实现如下效果: test数据库有userinfo用户信息
以下的文章主要讲述的是实现MySQL触发器的实际操作步骤、以及存储过程、自定义函数与视图的简单示例介绍,如果你对MySQL触发器的实际操作步骤以及存储过程的实际操作感兴趣的话,你就可以浏览以下的文章了,示例实现如下效果:
test数据库有userinfo用户信息表 和userinfolog用户信息日志表
1.建立一个userinfo表新增记录时的触发器 将新增日志加入到userinfolog
2.建立一个向userinfo表新增记录的存储过程
3.根据userinfo表的出生日期字段 我们将建立一个简单算得年龄的自定义函数
4.创建一个userinfo的视图 调用年龄函数
准备相关表
- 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触发器的介绍,望你能有所收获。