sql - 创建列以存储其他两列的相乘值
问题描述
我是 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 列后,我收到“此处不允许列”错误。我认为这是一项相当容易的任务,但我无法真正弄清楚。
解决方案
我认为您想要一个计算列,而不是默认值。那将是:
ALTER TABLE produkt ADD price_br INTEGER GENERATED ALWAYS AS (var*PRICE_NET);
推荐阅读
- python - 基于另一列的 str.contains 正在返回空字符串的值
- powershell - 使用 powershell 将 base64 编码密码转换为 SecureString
- saved-searches - 我想要在 idx api 中保存的搜索计数
- php - 为什么在 bind_params 上准备好的语句失败?
- amazon-web-services - AWS Cloudwatch 指标警报在第一次后未触发
- jooq - 在 jooq 中重用 DSLContext 时性能下降
- azure-cosmosdb - 收到 HTTP 错误 400。请求标头的大小太长。- Microsoft.Azure.Documents.DocumentClientException
- c - 关闭与数据库的连接时不会释放内存(C,postgres - libpq)
- postgresql - Postgres 是否有一个列出 date_trunc 精度值的系统表?
- python-3.x - 为什么我无法安装 line_profiler?