mysql添加触发器步骤_mysql创建触发器、存储过程、函数等实例

############# 本blog可以直接在mysql客户端中执行 #############

# 0. 表准备

drop database abc;

create database abc;

use abc;

create table userinfo(userid int, username varchar(10), userbirthday date);

create table userinfolog(logtime datetime, loginfo varchar(100));

# 1. 触发器

delimiter //

create trigger beforeinsertuserinfo

before insert on userinfo

for each row begin

insert into userinfolog values(now(), concat(new.userid, new.username));

end;

//

delimiter ;

show triggers;

# 2. 存储过程

drop procedure if exists spinsertuserinfo;

delimiter //

create procedure spinsertuserinfo(puserid int, pusername varchar(10), puserbirthday date)

begin

insert into userinfo values(puserid, pusername, puserbirthday);

end;

//

delimiter ;

show procedure status like 'spinsertuserinfo';

call spinsertuserinfo(1, 'zhangsan', '1972-01-09');

call spinsertuserinfo(2, 'lisi', '1982-07-26');

call spinsertuserinfo(3, 'wanger', current_date);

# 3. 自定义函数

drop function if exists fngetage;

delimiter //

create function fngetage(pbirthday date)

returns integer

begin

return year(now()) - year(pbirthday);

end

//

delimiter ;

# 4. 视图

create view viewuserinfo as select *, fngetage(userbirthday) as userage from userinfo;

select * from viewuserinfo;

本示例实现如下效果:

0.test数据库有userinfo用户信息表和userinfolog用户信息日志表

1.建立一个userinfo表新增记录时的触发器将新增日志加入到userinfolog

2.建立一个向userinfo表新增记录的存储过程

3.根据userinfo表的出生日期字段我们将建立一个简单算得年龄的自定义函数

4.创建一个userinfo的视图调用年龄函数

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-11-18 08:39

浏览 1184

分类:数据库

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值