当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-05-02 15:44:00  来源:本站整理

MySQL5新特点(触发器)[MySQL防范]

赞助商链接



  本文“MySQL5新特点(触发器)[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
MySQL从5.0.2版开始引入触发器,触发器就是一个已命名的数据库对象,这个对象和某张表 相关,并且当这张表发生某种特定事件后,触发器将被激活履行呼应的行动,触发器答应这 些行动在这张表中的一行或多行的数据被操作的前后履行.在风行业务系统的处理历程中,开辟和管理人员可以用触发器来实现数据审计和其他安全相关的功效,如在运行中的数据履行加密功效.

举个例子来说:一个客户数据库中包含客户的社会保险号,企业的安全和审计人员必须将这些信息加密后存入磁盘.针对这种情形,管理员可以通过成立一个触发器来自动获得并加密这些数据然后再插入呼应的数据库表中.以下所示:
mysql> delimiter // 
mysql> create trigger t_customer_insert before insert on customer
    -> for each row
    -> begin 
    -> set NEW.customer_ssn = aes_encrypt(NEW.customer_ssn,'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;
后果显示以下图:

 

可以看出存在磁盘数据库表中的社会保险号ssn已经变成加密后的不可读乱码格局.

别的MySQL5也引进了对游标的支持,在第一个发行版本中游标有向前翻阅后果集和不可履行数据更新语句的特点.游标可以用在MySQL5的新编码对象,如存储历程和触发器,乃至是独立的存储历程逻辑块中.以下是一个在存储历程中的利用游标的简单例子:
mysql> delimiter // 
mysql> CREATE PROCEDURE cursor_demo()
    -> BEGIN 
    ->   DECLARE a, b CHAR(16); 
    ->   DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
    -> OPEN cur1; 
    -> REPEAT  
    ->  FETCH cur1 INTO a,b;
    -> UNDONE END REPEAT;
    -> CLOSE cur1; 
    -> END
    -> //
下面再举一个触发器的例子,该例子可以计算全部插入某表的某个列中的数值的和:
mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
    -> FOR EACH ROW SET @sum = @sum + NEW.amount;
可见触发器功效可以提高管理人员管理数据库的机动性.   以上是“MySQL5新特点(触发器)[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Windows 搭配 IIS7 PHP MySQL 环境
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • mysql数据库插入速度和读取速度的调整记录
  • MySQL Order By索引优化办法
  • MySQL Order By用法分享
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • MySQL Order By Rand()效率解析
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .