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()函数。为了证明这一点,我们再次执行该块:
并得到了不同的结果。