4

plpgsql を使用してトリガーを記述しています n PostgreSQL でいつ = を使用し、いつ := を使用するのか疑問に思っていますが、違いは何ですか?

例えば:

CREATE OR REPLACE FUNCTION on_ai_myTable() RETURNS TRIGGER AS $$
DECLARE
t_ix real;
n int;

BEGIN
IF NEW.time_type = 'Start' THEN
    SELECT t.time_index FROM table_ebscb_spa_log02 t WHERE t.fn_name = NEW.fn_name AND t.time_type = 'Start' ORDER BY t.timestamp02 DESC LIMIT 1 INTO t_ix;
      GET DIAGNOSTICS n = ROW_COUNT;
        IF (n = 0) THEN 
        t_ix = 1;
        ELSE 
        t_ix = t_ix + 1;
        END IF;
END IF;
NEW.time_index = t_ix;
return NEW;
END
$$
LANGUAGE plpgsql;
4

2 に答える 2

7

バージョン 9.4 では、違いがないことを明確にするためにドキュメントが更新されました。

バージョン 9.4 :

40.5.1. 割り当て

PL/pgSQL 変数への値の割り当ては、次のように記述されます。

変数 { := | = } 式;

[...]

PL/SQL準拠の代わりに等号(=)を使用できます:=

以前のバージョン:=では、代入演算子として alone が言及され=ていましたが、最初から機能しています。

于 2015-06-22T13:18:36.857 に答える