############# 本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 beforeinsertuserinfobefore insert on userinfofor 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)begininsert 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 integerbegin return year(now()) - year(pbirthday);end//delimiter ;# 4. 视图create view viewuserinfo as select *, fngetage(userbirthday) as userage from userinfo;select * from viewuserinfo;