我有一个表 foo,里面有一个文本字段栏。在那张桌子上,我有一个更新后触发器,基本上如下:
CREATE OR REPLACE FUNCTION update_foo()
RETURNS TRIGGER
SECURITY DEFINER
AS
$_$
DECLARE
BEGIN
IF TG_OP = 'UPDATE' and NEW.bar = OLD.bar THEN
return NEW;
END IF;
/* Do some stuff */
END
$_$
LANGUAGE PLPGSQL;
然后我做这样的事情: Update foo set bar = bar || '';
。
但是当文本值相等时它不会保释。
我的问题是,为什么 PostgreSQL 8.3,特别是 pl/PgSQL 不称它们为平等并尽早退出?
免责声明:表、字段和变量名称已从其原始名称更改,以允许在线发布。