`

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的视图调用年龄函数
分享到:
评论

相关推荐

    MySql零基础入门到精通(资料集)SQL语句+触发器+存储过程+安装卸载+导入导出+性能优化

    学习路线已为你标好,初学者不必走弯路浪费时间,一步到位实践精通 ...第二阶段---MySQL触发器.pdf 第二阶段---如何导入导出MySQL数据库.doc 第二阶段---正确版MySgl绿色版配置及使用详解.doc ..............

    MySQL 触发器的基础操作(六)

     在MySQL数据库中,数据库对象表是存储和操作数据的逻辑结构,而数据库对象触发器则用来实现由一些表事件触发的某个操作。在数据库系统中,当执行表事件时,则会激活触发器,从而执行器包含的操作。触发器的操作...

    非常详细的某培训机构mysql学习笔记

    MySQL存储过程与函数 MySQL3 MySQL安全机制 MySQL日志管理 MySQL数据备份 备份概述 mysqldump [逻辑] mydumper [逻辑] into outfile [逻辑] xtrabackup [物理] snapshot [物理] tar打包备份 [物理] ...

    mysql 存储过程中变量的定义与赋值操作

    一、变量的定义 mysql中变量定义用declare来定义...二、mysql存储过程变量赋值 变量的赋值可直接赋值与查询赋值来操作,直接赋值可以用set来操作,可以是常量或表达式如果下 代码如下: set var_name= [,var_name expr]

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 4_存储过程函数概念和创建讲解.mp4 │ 5_存储过程函数流程控制语句讲解.mp4 │ ├─新版MySQL DBA综合实战班 第05天 │ 1_课后作业讲解.mp4 │ 2_MySQL游标讲解.mp4 │ 3_MySQL触发器.mp4 │ 4_MySQL触发器课堂...

    MYSQL数据库管理器 (易语言源代码)

    最新的5.0.X(测试版)已经添加了以前受人诟病的缺失的企业级数据库必备的特性(事务、视图、存储过程、自定义函数、触发器等),具备了这些企业级特性的MYSQL数据库并且与PHP的紧密结合,成为企业级应用的...

    在MySQL中创建实现自增的序列(Sequence)的教程

    主要介绍了在MySQL中创建实现自增的序列(Sequence)的教程,分别列举了两个实例并简单讨论了一些限制因素,需要的朋友可以参考下

    MySQL数据库基础与实例教程 中文PPT版 4.25MB.rar

    本书使用量身定制的案例全面讲解MySQL基础知识以及MySQL5.6新特性,InnoDB全文检索、触发器、存储过程、函数、事务、锁等概念,全部融入该案例。 本书尽量将抽象问题形象化、图形化,复杂问题简单化。即便读者没有...

    mysql存储过程之引发存储过程中的错误条件(SIGNAL和RESIGNAL语句)实例分析

    本文实例讲述了mysql引发存储过程中的错误条件(SIGNAL和RESIGNAL语句)。分享给大家供大家参考,具体如下: 在mysql中,我们可以使用SIGNAL和RESIGNAL语句来引发存储过程中的错误条件。 先来看,SIGNAL语句。我们...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    [MySQL高效编程].王志刚等.扫描版

    从mysql数据库以及mysql中使用的sql语言基础入手,再结合具体的网店数据库实例,重点介绍了事务处理、索引、视图、存储过程、存储函数、触发器等高级应用技巧,最后介绍了如何使用mysql数据库开发如facebook或mixi...

    PHP程序开发范例宝典III

    实例169 动态创建MySQL数据表 257 实例170 动态创建字段 259 实例171 动态创建一个完整的数据库 261 6.11 数据的导入导出 263 实例172 MySQL数据库自身的导入导出 263 实例173 SQL Server数据导入到MySQL...

    MySQL网络培训精品班-Inside君姜承尧

    day014-触发器下 存储过程 自定义函数 MySQL 执行计划与优化器 day015-索引 B+树 上 day016-索引 B+树 下 Explain 1 day017-Explain 2 MySQL innodb引擎优化 day018-磁盘 day019-磁盘测试 day020-InnoDB_1 表空间 ...

    MYSQL

    5.4.4 存储过程和触发器 5.4.5 外键(Foreign Keys) 5.4.5.1 不使用外键的理由 5.4.6 视图(Views) 5.4.7 '--'作为一个 注解的开始 5.5 MySQL 遵循什么标准? 5.6 怎样处理没有提交/回卷...

    mysql精品资料大全

    MySQL触发器.pdf MYSQL存储过程技术.ppt MySQL存储过程实例教程.doc MySQL导入导出数据库文件.doc mysql调优.pdf mysql函数大全.pdf MySQL教程.doc MySql入门教程.pdf mysql深入优化.pdf ... 数据库原理与应用教程....

    MySQL中文参考手册.chm

    5.4.4 存储过程和触发器 5.4.5 外键(Foreign Keys) 5.4.5.1 不使用外键的理由 5.4.6 视图(Views) 5.4.7 '--'作为一个 注解的开始 5.5 MySQL 遵循什么标准? 5.6 怎样处理没有提交...

    MySQL中文参考手册

    + 5.4.4 存储过程和触发器 + 5.4.5 外键(Foreign Keys) # 5.4.5.1 不使用外键的理由 + 5.4.6 视图(Views) + 5.4.7 '--'作为一个 注解的开始 o 5.5 MySQL 遵循什么标准? o 5.6 怎样处理没有提交/回卷(COMMIT ...

Global site tag (gtag.js) - Google Analytics