テキストフィールドバーが含まれるテーブル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がそれらを同等と呼び、早期に救済しないのかということです。
免責事項:テーブル、フィールド、および変数の名前は、オンラインで投稿できるように元の名前から変更されました。