MySQL 函数存储过程触发器定义简单示例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

1.变量提示
NEW 是新值-- OLD 是旧值 
INSERT 只有NEW ----UPDATE有NEW和OLD ---DELETE只有OLD 

2.准备测试表(userinfo、userinfolog) 
use test; 
create table userinfo(userid int,username varchar(10),userbirthday date); 
create table userinfolog(logtime datetime,loginfo varchar(100)); 
describe userinfo; 

3.建立同时插入两张表的触发器beforeinsertuserinfo
# 定义触发器
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; 

4.建立插入数据存储过程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',current_date); 
select * from userinfo; 

5.自定义函数fngetage

update userinfo 
set userbirthday='2000.01.01' 
where userid='1'; 
drop function if exists fngetage;
# 函数定义
delimiter $$ 
create function fngetage(pbirthday date) 
returns integer 
begin 
return year(now()) - year(pbirthday); 
end;
$$
delimiter ;

6.建立视图viewuserinfo调用函数fngetage
# 建立视图
create view viewuserinfo 
as select * ,fngetage(userbirthday) as userage from userinfo; 
select * from viewuserinfo; 

清除日志记录 
truncate table userinfolog; 
delete from userinfolog; 

 


本文转自 pgmia 51CTO博客,原文链接:http://blog.51cto.com/heyiyi/1251397

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
关系型数据库 MySQL 数据挖掘
|
3天前
|
存储 SQL 关系型数据库
MySQL周内训参照4、触发器-插入-修改-删除
MySQL周内训参照4、触发器-插入-修改-删除
9 1
|
4天前
|
存储 SQL 关系型数据库
MySQL存储过程_触发器_游标——Baidu Comate
MySQL存储过程_触发器_游标——Baidu Comate
7 0
|
4天前
|
存储 SQL 关系型数据库
MySQL存储过程——if判断示例
MySQL存储过程——if判断示例
4 0
|
4天前
|
SQL 存储 关系型数据库
MySQL的触发器创建与使用——使用Baidu Comate生成与触发测试完整过程
MySQL的触发器创建与使用——使用Baidu Comate生成与触发测试完整过程
4 0
|
4天前
|
存储 关系型数据库 MySQL
【MySQL技术内幕】3.3-套接字文件、pid文件和表结构定义文件
【MySQL技术内幕】3.3-套接字文件、pid文件和表结构定义文件
6 0
|
5天前
|
SQL 存储 关系型数据库
MYSQL--触发器
MYSQL--触发器
|
5天前
|
存储 安全 关系型数据库
MYSQL--存储函数
MYSQL--存储函数
|
5天前
|
存储 SQL 关系型数据库
MySQL存储过程和存储函数的使用
MySQL的存储过程和存储函数在功能和用法上有明显的区别。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,通过指定名称和参数(如果有)来调用执行,可以返回多个值或结果集,但不直接返回值。而存储函数则是一个有返回值的特殊存储过程,它返回一个值或表对象,可以直接嵌入SQL语句中使用,如SELECT语句中。两者都是为了提高SQL代码的重用性和性能,但使用场景和方式有所不同。
128 4
|
4天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!

热门文章

最新文章