无法添加生成列

时间:2016-10-21 04:06:40

标签: mysql

我的MySQL产品MyISAM表中有一个Price列(DECIMAL 6,2),我正在尝试添加一个Generated Column来将它乘以2.我试图使用它:

ALTER TABLE Produtos ADD COLUMN Price_double DECIMAL(6,2) AS (Price*2);

但是我在HeidiSQL中得到了这个:

  

错误SQL(1064):SQL语法中有错误;检查   手册,对应右边的MySQL服务器版本   在第1行'AS(Preco * 2)附近使用的语法

我不知道该怎么办。真的...

我的MySQL版本是5.5.51-38.2

1 个答案:

答案 0 :(得分:2)

MySQL仅支持版本5.7或更高版本中生成的列,q.v。 documentation

  

从MySQL 5.7.6开始,CREATE TABLE支持生成列的规范。生成列的值根据列定义中包含的表达式计算。

但是,您的语法似乎是正确的,如果您运行的是5.7或更高版本,则不应该看到任何错误。

有关使用计算列的变通方法,您只需在PHP代码的SELECT语句中计算产品即可。请记住,在表中包含任何列会产生开销,包括计算列。如果您不确定您是否经常需要计算金额,您可以反对改变您的表格。