首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Mysql5.0 触发器
【标  题】:Mysql5.0 触发器
【关键字】:Mysql5.0
【来  源】:http://blog.csdn.net/wangyihust/archive/2006/05/09/715580.aspx

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)*/

不绑定记录集获取datagrid某行某列的内容:【上一篇】
Mysql5.0 存储过程:【下一篇】
【相关文章】
  • Mysql5.0学习笔记(一)
  • JIRA安装(Tomcat5.0.28+Mysql5.0.19)--原创
  • mysql5.0 Certification Study Guide DBA (1)
  • Heartbeat_2.0.3配置MySQL5.0.18为高可用集群(工作记录)
  • Mysql5.0.18
  • Oracle 和 mysql5.0的 tranction_sql 比较
  • MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
  • MySQL5.0中文手册(13.1. 数据定义声明)
  • MySQL5.0-Source Installation Overview
  • win2000下apache2.0.43+php5.0.2+mysql5.0.4+Zend2.5.7
  • 【随机文章】
  • [原创]善用google的what is
  • IP over DWDM骨干网关键技术
  • 中断和异常的转移方法
  • linux学习笔记---档案权限与管理
  • 盛夏清凉-制作晶莹剔透的啤酒杯
  • MSSQL2000右键修改存储过程需要注意的问题
  • Sql Server2005登录失败.
  • 如何在.net平台合理安全的使用Named Shared Memory以在进程间共享数据
  • Setting up an FTP server on Debian
  • photoshop历史记录画笔工具
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.