更改列以使其成为派生列
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 COLUMN
和 GENERATED
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;
我正在学习 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 COLUMN
和 GENERATED
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;