尝试使用以下命令将新列添加到预先存在的表中:
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行
有人能告诉我语法错误吗?
答案 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
(所以我猜它是括号,它没有找到你的表,或只是字段名的语法错误。)