问题描述
假设我有一张像这样的表(名为 numbers
)
A B
1 3
4 4
5 5
我想创建一个新列 C
,其中包含值 A / B
。 IE。看起来像:
A B C
1 3 0.33
4 4 1
5 5 1
我尝试了这段代码,但它不起作用。有谁知道为什么?
ALTER TABLE numbers ADD C VARCHAR(50) NOT NULL INSERT INTO numbers (C) VALUES (A / B)
解决方法
听起来您想要一个生成的列。语法因数据库而异,但通常是这样的:
ALTER TABLE numbers ADD C VARCHAR(50) GENERATED ALWAYS AS (A / B);
为什么要进行算术运算然后将值存储为字符串对我来说是个谜,但这是允许的。
Here 是一个 dbfiddle,正好使用 MySQL。