首页 / MYSQL / Mysql5.0触发器_MySQL
Mysql5.0触发器_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql5.0触发器_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1745字,纯文字阅读大概需要3分钟。
内容图文
![Mysql5.0触发器_MySQL](/upload/InfoBanner/zyjiaocheng/572/c7d0dd7ada8c45dfbee767fe295c9581.jpg)
触发器允许这 些动作在这张表中的一行或多行的数据被操作的前后执行。
1.语法:( 步长)触发间隔
CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW <--
<触发的SQL语句>触发的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)*/
内容总结
以上是互联网集市为您收集整理的Mysql5.0触发器_MySQL全部内容,希望文章能够帮你解决Mysql5.0触发器_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。