首页 > 解决方案 > 创建列以存储其他两列的相乘值

问题描述

我是 SQL 新手,使用此命令为列设置默认值时遇到问题。问题是我必须得到产品的 brutto 价格。

ALTER TABLE produkt
ADD vat DECIMAL(5,2) DEFAULT 0.23;

ALTER TABLE produkt
ADD price_br INTEGER DEFAULT var*PRICE_NET;

“produkt”是我的表 PRICE_NET 是产品的净价格。

尝试添加 price_br 列后,我收到“此处不允许列”错误。我认为这是一项相当容易的任务,但我无法真正弄清楚。

标签: sqloracleddl

解决方案


我认为您想要一个计算列,而不是默认值。那将是:

ALTER TABLE produkt ADD price_br INTEGER GENERATED ALWAYS AS (var*PRICE_NET);

推荐阅读