为什么 ALTER TABLE(添加一列)在此 SQL 代码中不起作用?
Why isn't ALTER TABLE (adding a column) working in this SQL code?
假设我有一个像这样的table(称为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 是一个 db<>fiddle,恰好用到了 MySQL.
假设我有一个像这样的table(称为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 是一个 db<>fiddle,恰好用到了 MySQL.