📜  PostgreSQL – 常量

📅  最后修改于: 2022-05-13 01:57:15.918000             🧑  作者: Mango

PostgreSQL – 常量

与变量不同,常量的值一旦初始化就不能更改。 PostgreSQL 中使用常量的主要目的是:

  • 它使查询更具可读性。
  • 减少了维护工作。
Syntax: constant_name CONSTANT data_type := expression;

我们来分析一下上面的语法:

  • 首先,指定常量名称。按照惯例,它通常采用大写形式。
  • 其次,放置CONSTANT关键字并指定常量关联数据类型
  • 第三,为常量初始化一个值。

示例 1:

以下示例声明了一个名为VAT的常量 对于增值税并从净价计算售价:

DO $$ 
DECLARE
   VAT CONSTANT NUMERIC := 0.1;
   net_price    NUMERIC := 20.5;
BEGIN 
   RAISE NOTICE 'The selling price is %', net_price * ( 1 + VAT );
END $$;

输出:



现在让我们尝试更改常量,如下所示:

DO $$ 
DECLARE
   VAT constant NUMERIC := 0.1;
   net_price    NUMERIC := 20.5;
BEGIN 
   RAISE NOTICE 'The selling price is %', net_price * ( 1 + VAT );
   VAT := 0.05;
END $$;

正如预期的那样,它引发了如下所示的错误:

示例 2:

重要的是要注意PostgreSQL 在运行时输入块时计算常量的值,而不是编译时,如下例所示:

DO $$ 
DECLARE
   start_at CONSTANT time := now();
BEGIN 
   RAISE NOTICE 'Start executing block at %', start_at;
END $$;

输出:

每次我们调用块时,PostgreSQL 都会评估 NOW()函数。为了证明这一点,我们再次执行该块:

并得到了不同的结果。