更改列以使其成为派生列

Alter column to make it a derived column

我正在学习 PostgreSQL,我想知道是否可以将派生列添加到 table,然后在另一行更改它,我尝试了不同的方法,但我找不到正确的语法。

出于某种原因,这个练习似乎需要分两行,但我现在只能分一行。

-- 1) Add an attribute Taxes to table Payment
ALTER TABLE Payment
ADD Taxes real;

-- 2) Set the derived attribute taxes as 12% of PaySlip
ALTER TABLE Payment
ALTER COLUMN Taxes AS (0.12*Payment.PaySlip);

你可以尝试使用Generated Columns

如果此列存在于您的 table 中,我们可能需要在创建它之前将其删除。

由于文档可能不支持 ALTER COLUMNGENERATED

ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ]

ALTER TABLE Payment DROP COLUMN Taxes;

ALTER TABLE Payment
ADD Taxes  [type of Taxes]  GENERATED ALWAYS AS (0.12 * PaySlip) stored;

sqlfiddle