我的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
答案 0 :(得分:2)
MySQL仅支持版本5.7或更高版本中生成的列,q.v。 documentation:
从MySQL 5.7.6开始,CREATE TABLE支持生成列的规范。生成列的值根据列定义中包含的表达式计算。
但是,您的语法似乎是正确的,如果您运行的是5.7或更高版本,则不应该看到任何错误。
有关使用计算列的变通方法,您只需在PHP代码的SELECT
语句中计算产品即可。请记住,在表中包含任何列会产生开销,包括计算列。如果您不确定您是否经常需要计算金额,您可以反对改变您的表格。