何时在 postgreSQL 中使用 = 和 := ?

Nat*_*u16 10 postgresql triggers colon-equals

我使用 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;
Run Code Online (Sandbox Code Playgroud)

Dan*_*ité 14

在 9.4 版本中,更新了文档以明确说明没有区别。

版本9.4

40.5.1。任务

PL/pgSQL 变量的赋值写为:

变量 { := | = } 表达式;

[...]

可以使用等于 (=) 代替符合 PL/SQL 的 :=

在以前的版本中,:=单独被提到作为赋值运算符,但从=一开始就一直在工作。


Ed *_*eal 6

=是为了比较。:=用于分配。

  • @NickBarnes:用于赋值的 `=` 已被弃用,不应使用。 (2认同)