更新前每行的postgreSQL触发器:新的和旧的伪行

更新前每行的postgreSQL触发器:新的和旧的伪行,postgresql,triggers,postgresql-9.2,Postgresql,Triggers,Postgresql 9.2,自动返回触发器的函数是否能够在为每行指定的更新前触发器中引用新的和旧的伪行 CREATE TRIGGER foo_trigger BEFORE UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE foo(); CREATE FUNCTION foo() RETURNS trigger AS $foo_trigger$ BEGIN NEW.taxrate := 5.5; RETURN

自动返回触发器的函数是否能够在为每行指定的更新前触发器中引用新的和旧的伪行

 CREATE TRIGGER foo_trigger BEFORE UPDATE ON emp
    FOR EACH ROW EXECUTE PROCEDURE foo();

   CREATE FUNCTION foo() RETURNS trigger AS $foo_trigger$
    BEGIN  
        NEW.taxrate := 5.5;        
        RETURN NEW;
    END;
    $foo_trigger$ LANGUAGE plpgsql;
函数
$foo\u触发器$LANGUAGE plpgsql的最后一行中
$..$
内的字符串必须是与CREATETRIGGER语句中触发器的名称完全匹配,还是它只是一个占位符

自动地能够在为每一行指定的更新前触发器中引用新的和旧的伪行

引自手册

当调用PL/pgSQL函数作为触发器时,会在顶级块中自动创建几个特殊变量


字符串[…]必须与CREATETRIGGER语句中触发器的名称完全匹配,还是它只是一个占位符

没有

$..$
东西被称为“美元报价”,它简单地取代了单引号,使处理大字符串(带有嵌入引号)更容易。唯一的要求是在开始和结束时使用相同的“键”。您可以使用
$body$
(这很常见)或任何您喜欢的工具

有关详细信息,请参阅手册:

自动地能够在为每一行指定的更新前触发器中引用新的和旧的伪行

引自手册

当调用PL/pgSQL函数作为触发器时,会在顶级块中自动创建几个特殊变量


字符串[…]必须与CREATETRIGGER语句中触发器的名称完全匹配,还是它只是一个占位符

没有

$..$
东西被称为“美元报价”,它简单地取代了单引号,使处理大字符串(带有嵌入引号)更容易。唯一的要求是在开始和结束时使用相同的“键”。您可以使用
$body$
(这很常见)或任何您喜欢的工具


有关详细信息,请参阅手册:

感谢您提供$dollar quoting$的答案、链接和说明。感谢您提供$dollar quoting$的答案、链接和说明。