0
私はそれにテキストフィールドバーを持つテーブル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がそれらを等価と呼び、早期に退会するのかということです。
免責条項:表、フィールド、および変数名は、オンラインからの転記を可能にするため、元のものから変更されています。
を追加する必要がありますが、私が影響を与えたいくつかのNULLフィールドを持っていたが判明します重要なフィールドで物事が変更されたかどうかをチェックします。 – bitcycle