PGSQL:触发另一个表行的计数器

时间:2016-03-23 07:21:05

标签: postgresql triggers

我想触发当一个表,让我们称之为A,更新时,它会计算A上的行数并更新另一个表B中的值,怎么办?< / p>

1 个答案:

答案 0 :(得分:0)

这里有完整的示例: http://www.postgresql.org/docs/9.3/static/plpgsql-trigger.html

要创建存储过程,您应该提供: CREATE FUNCTION your_function_name(parameters_goes_here)RETURNS returned_data_type_or_trigger_for_triggers AS string_value_with_body;

通常分号结束命令,因此您无法键入正文。其他数据库更改命令分隔符。 PG允许特殊的字符串分隔符美元符号。请阅读以下主题: What are '$$' used for in PL/pgSQL

回到柜台 - 他们很棘手。假设您计算主题中的帖子。并在两个主题之间移动帖子。由于他们有计数器,因此主题会更新。这反过来意味着更新锁定。如果在两个主题之间移动了两个并发帖子,会发生什么?第一步锁定他的基本主题并尝试其他主题。其他人也是如此。 :d 要处理它,你需要确保它们都尝试使用相同的一个。例如,按ID排序主题并首先选择它们。