我正在學習 PostgreSQL,我想知道是否可以將派生列添加到表中,然后在另一行上 ALTER,我嘗試了不同的方法,但找不到正確的語法。
出于某種原因,它似乎需要在兩條線上進行,但我目前只能在一條線上進行。
-- 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);
uj5u.com熱心網友回復:
你可以嘗試使用Generated Columns
如果此列存在于您的表中,我們可能需要在創建它之前洗掉它。
由于檔案可能不ALTER COLUMN支持GENERATED
ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | 默認情況下 } 作為 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463031.html
標籤:sql PostgreSQL 计算列
