`
winzenghua
  • 浏览: 1327205 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Mysql5.0 触发器

阅读更多

MySQL从5.0.2版开始引入触发器,触发器就是一个已命名的数据库对象,这个对象和某张表 相关,而且当这张表发生某种特定事件后,触发器将被激活执行相应的动作,触发器允许这 些动作在这张表中的一行或多行的数据被操作的前后执行。

1.语法:( 步长)触发间隔

CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW <--
<触发的SQL语句>

触发器的执行间隔:FOR EACH ROW子句通知触发器
每隔一行执行一次动作,而不是对整个表执行一次。


2. NEW,OLD
在触发器的SQL语句中,你可以关联表中的任意列。但你不能仅使用列的名称去标识,那会使系统混淆,因为那里可能会有列的新名(这可能正是你要修改的,你的动作可能正是要修改列名),还有列的旧名存在。因此你必须用这样的语法来标识: "NEW . column_name"或者"OLD . column_name".这样在技术上处理(NEW | OLD . column_name)新和旧的列名属于创建了过渡变量("transition variables")。

3.简单实例

delimiter $$

create trigger groups_forSchool
before insert on groups
for each row
begin
set NEW.school='scut';
end $$

delimiter ;

当我们要向表中的行插入时,触发器就会被激活,执行将school列的值改为'scut'的动作。

4.加密实例
一个客户数据库中包含客户密码pwd,管理员必须将这些信息加密后存入磁盘。针对这种情况,管理员可以通过创建一个触发器来自动获取并加密这些数据然后再插入相应的数据库表中。如下所示:(参考 小题大作)

mysql> delimiter //
mysql> create trigger t_customer_insert before insert on customer
-> for each row
-> begin
-> set NEW.pwd = aes_encrypt(NEW.pwd,'password');

-> end;
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

mysql> insert into customer values (1,'fred','smith','456097234');
Query OK, 1 row affected (0.00 sec)
mysql> select * from customer;


可以看出存在磁盘数据库表中的客户密码pwd已经变成加密后的不可读乱码格式。

/* 加密函数:AES_ENCRYPT(str,key_str)*/

分享到:
评论

相关推荐

    MySQL 5.0 触发器.rar

    MySQL 5.0 触发器

    MySQL 5.0触发器参考教程第1/4页

    需要学习mysql触发器的朋友需要了解的东西,整理的比较多,建议大家慢慢多练习

    MySQL 5.0 存储过程

    MySQL 5.0 新特性丛书的第一集。希望这 本书能像内行专家那样与您进行对话,用简单的问题、例子让你学到需要的知识。 为了达到这样的目的,我会从每一个细节开始慢的为大家建立概念,最后会给大家展示 较大的实用例...

    mysqltrigger触发器.pdf

    MySQL 5.0 为示希较了望大达这到的本实这书用样能的像目例内,的行,在专我学家会习那从之样每前与一也您个许进细大行节家对开会话始认,慢为用这简的个单为用的大例问家很题建难、,立例新但概子特是念让性,只你丛...

    mysql数据库触发器相关.pptx

    mysql数据库触发器相关触发器(TRIGGER)是MySQL的数据库对象之一,是一种特殊类型的存储过程,从5.0版本开始支持。该对象与编程语言中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序call调用,...

    《MySQL 5.0存储过程》教程 PDF

    主要是针对MySQL 5.0 的新新性而写。简单来说是介绍了“存储过程、触发器、视图、信息架构视图”。书的作者的初衷是使此书像一位无声的内行专家一样和你进行真心沟通交流,用简单的例子让你学到更多实用的知识。更多...

    MySQL5.0存储过程教程

    Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的。简单的来说是介绍了“存储过程、触发器、视图、信息架构视图”,在此感谢译者陈朋奕的努力.

    MySQL Cookbook 第2版 美 迪布瓦 中文版 扫描版

    本书在目前仍然广为流行的mysql 4.1的基础上加入了mysql 5.0的内容及它强大的新特性。读者将掌握用mysql客户端程序执行sql查询的方法,以及通过api编写与mysql服务器交互程序的方法。书中有大量使用perl、php、...

    [MySQL.Cookbook(第2版)].(美)迪布瓦.中文版.扫描版

    《MySQL Cookbook(中文版)》在目前仍然广为流行的MySQL 4.1的基础上加入了MySQL 5.0的内容及它强大的新特性。读者将掌握用MySQL客户端程序执行SQL查询的方法,以及通过API编写与MySQL服务器交互程序的方法。书中有...

    MySQL Cookbook(第2版) 中文版.pdf

    本书在目前仍然广为流行的MySQL 4.1的基础上加入了MySQL 5.0的内容及它强大的新特性。读者将掌握用MySQL客户端程序执行SQL查询的方法,以及通过API编写与MySQL服务器交互程序的方法。书中有大量使用Perl、PHP、...

    MySQL Cookbook 2nd 簡中版

    《MySQL Cookbook(中文版)》在目前仍然广为流行的MySQL 4.1的基础上加入了MySQL 5.0的内容及它强大的新特性。读者将掌握用MySQL客户端程序执行SQL查询的方法,以及通过API编写与MySQL服务器交互程序的方法。书中有...

    mysql精品资料大全

    MySQL5.0安装图解 MySQL Cookbook.pdf mysql_日志使用详解.rtf MySQL查询语句大全集锦.doc MySQL触发器.pdf MYSQL存储过程技术.ppt MySQL存储过程实例教程.doc MySQL导入导出数据库文件.doc mysql调优.pdf mysql函数...

    高性能MySQL pdf 免费-part1

     ·介绍MySQL 5.0和5.1的新特性,例如存储过程、分块数据库、触发器和视图。  ·具体细致地讨论如何使用MySQL构建出一个大型的、高伸缩性的系统。  ·可用于备份和复制的新方法。  ·对高级查询功能特性进行优化...

    MySQL核心技术手册(第二版)][1].(美)戴尔.扫描版.part2

    mysql包含了许多功能,尤其是在mysql 5.0和5.1版本中新增了一些主要的功能和特性。mysql特有的函数或者语句是相当丰富的。这正是本书富有价值的原因。本书令读者可以快速查找到所需要的具体细节,无论是sql关键字...

    mysql5 培训 PPT beta1

    我写的MySQL培训PPT,以当前5.0GA版本为基本,共分12部分,5天的课程。从数据库原理的讲解,到MySQL的安装、配置、标准SQL的DML、DDL、DCL、高级查询、数据库设计、表约束、PowerDesigner12.5的使用、三大范式、索引...

    MySQL核心技术手册(第二版)[1].(美)戴尔.扫描版.part1

    mysql包含了许多功能,尤其是在mysql 5.0和5.1版本中新增了一些主要的功能和特性。mysql特有的函数或者语句是相当丰富的。这正是本书富有价值的原因。本书令读者可以快速查找到所需要的具体细节,无论是sql关键字...

    高性能MySQL part2 免费

     ·介绍MySQL 5.0和5.1的新特性,例如存储过程、分块数据库、触发器和视图。  ·具体细致地讨论如何使用MySQL构建出一个大型的、高伸缩性的系统。  ·可用于备份和复制的新方法。  ·对高级查询功能特性进行优化...

    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 怎样处理没有提交...

Global site tag (gtag.js) - Google Analytics