| PostgreSQL 9.0.4 中文文档 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 9. 函数和操作符 | Fast Forward | Next | 
       当前PostgreSQL提供一个构建的触发器函数,suppress_redundant_updates_trigger,
	  其将阻止任何不会实际更改行中的数据发生,相反正常的行为,始终执行的更新,不管数据已经改变。
	  (这是正常的行为,使得更新运行速度更快,因为没有需要检查,并在某些情况下也是有用的。)
 
	
	  理想的情况下,你通常应该避免运行实际上并没有改变记录中的数据更新。
	  冗余更新可以花费大量不必要的时间,尤其是如果有大量索引的改变,
	  并将最终不得不被清空的死行中的空间。然而,检测这种情况下在客户端代码并不总是容易的或甚至可能,
	  而写表达式以检测到它们容易产生错误。使用suppress_redundant_updates_trigger更新,可以跳过不改变数据的更新。
	  触发器需要小但非一般的时间为每条记录,所以如果大多数记录实际发生更改而受更新,此触发器的使用将实际上使更新运行得更慢。
 
  suppress_redundant_updates_trigger函数可以添加到一个表像这样: 
CREATE TRIGGER z_min_update BEFORE UPDATE ON tablename FOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger();
在大多数情况下,您希望为每行最后触发此触发器。 心中铭记触发器的名称顺序,然后,你会选择一个触发名称来自于你可能会对该表有任何其它触发器名。
获取更多关于创建触发器,见CREATE TRIGGER。