Rumah  >  Artikel  >  pangkalan data  >  MySQL UPDATE触发器(更新)及触发器深度解析

MySQL UPDATE触发器(更新)及触发器深度解析

巴扎黑
巴扎黑asal
2017-05-19 15:22:278809semak imbas

UPDATE触发器

UPDATE 触发器在 UPDATE 语句执行之前或之后执行。需要知道以下几点:

1.在 UPDATE 触发器代码中,你可以引用一个名为 OLD 的虚拟表访问以前( UPDATE 语句前)的值,引用一个名为 NEW 的虚拟表访问新更新的值;

2.在 BEFORE UPDATE 触发器中, NEW 中的值可能也被更新(允许更改将要用于 UPDATE 语句中的值);

3.OLD 中的值全都是只读的,不能更新。

下面的例子保证州名缩写总是大写(不管 UPDATE 语句中给出的是大写还是小写):

输入:

create trigger updatevendor before update on vends for each row set new.vend_state = upper(new.vend_state);

分析:显然,任何数据净化都需要在 UPDATE 语句之前进行,就像这个例子中一样。每次更新一个行时, NEW.vend_state 中的值(将用来更新表行的值)都用 Upper(NEW.vend_state) 替换。


关于触发器的进一步介绍

在结束本章之前,我们再介绍一些使用触发器时需要记住的重点。

1.与其他DBMS相比,MySQL 5中支持的触发器相当初级。未来的MySQL版本中有一些改进和增强触发器支持的计划。

2.创建触发器可能需要特殊的安全访问权限,但是,触发器的执行是自动的。如果 INSERT 、 UPDATE 或 DELETE 语句能够执行,则相关的触发器也能执行。

3.应该用触发器来保证数据的一致性(大小写、格式等)。在触发器中执行这种类型的处理的优点是它总是进行这种处理,而且是透明地进行,与客户机应用无关。

4.触发器的一种非常有意义的使用是创建审计跟踪。使用触发器,把更改(如果需要,甚至还有之前和之后的状态)记录到另一个表非常容易。

5.遗憾的是,MySQL触发器中不支持 CALL 语句。这表示不能从触发器内调用存储过程。所需的存储过程代码需要复制到触发器内。

【相关推荐】

1. mysql免费视频教程

2. MySQL delete触发器(删除)用法详解

3. MySQL中insert触发器(插入)详解

4. mysql触发器简介及如何创建和删除触发器

5. MySQL使用字符集和校对顺序使用教程

Atas ialah kandungan terperinci MySQL UPDATE触发器(更新)及触发器深度解析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn