添加总计其他列值的SQL列

时间:2016-05-17 15:15:21

标签: mysql

尝试使用以下命令将新列添加到预先存在的表中:

ALTER TABLE randomquestions 
ADD Total AS R1_Number + R2_Number + R3_Number + R4_Number PERSISTED

我收到此错误:

  

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在#R; AS R1_Number + R2_Number + R3_Number + R4_Number PERSISTED'附近使用正确的语法。在第2行

有人能告诉我语法错误吗?

3 个答案:

答案 0 :(得分:1)

如果MySQL 5.7.6+ Generated Columns

ALTER TABLE randomquestions 
ADD Total INT AS (R1_Number + R2_Number + R3_Number + R4_Number) STORED;

请注意,您可能需要根据Rx_Number的数据类型更改数据类型。

答案 1 :(得分:0)

Alter看起来很好,缺少括号和列类型。

ALTER TABLE randomquestions 
ADD Total int AS (R1_Number + R2_Number + R3_Number + R4_Number) PERSISTED

答案 2 :(得分:0)

我用括号尝试了一个类似的陈述,它起作用了:

use test
alter table [dbo].[tablename]
Add total2 as (price * 2) persisted 

(所以我猜它是括号,它没有找到你的表,或只是字段名的语法错误。)