Mysql用户定义函数为计算存储列

Mysql用户定义函数为计算存储列,mysql,Mysql,我想添加一个计算出的空间列,该列具有我在MySQL 5.7.11中编写的函数的值 更改表格块更改点坐标点坐标点坐标 (tile2点(x,y,20))存储 我得到一个错误: 生成的列“point_coord”的表达式包含不允许的函数。 tile2point是用户定义的返回点类型 当我使用基点()时,它正在工作 更改表格块更改点坐标点坐标点坐标 (点(x,y)存储 但是我还需要做一些其他的事情,这就是为什么我要做我的函数 这也正如预期的那样发挥作用: 选择*,平铺2点(x,y,20)作为块中的点坐标

我想添加一个计算出的空间列,该列具有我在MySQL 5.7.11中编写的函数的值

更改表格
更改
点坐标
点坐标
点坐标 (tile2点(
x
y
,20)
)存储

我得到一个错误:

生成的列“point_coord”的表达式包含不允许的函数。

tile2point是用户定义的返回点类型

当我使用基点()时,它正在工作

更改表格
更改
点坐标
点坐标
点坐标 (
x
y
)存储

但是我还需要做一些其他的事情,这就是为什么我要做我的函数

这也正如预期的那样发挥作用:

选择*,平铺2点(
x
y
,20)作为块中的点坐标

我只想存储它,而不是在每个查询中计算它


在列中存储函数返回值需要做什么?

不允许使用子查询、参数、变量、存储函数和用户定义函数。
。请参阅。@wchiquito所以这是他试图用触发器完成任务的唯一方法吗?@BrianLeishman:由于以下限制,
触发器不能使用NEW.col\u名称或使用OLD.col\u名称来引用生成的列。
。看。@wchiquito是的,我明白了,我只是说,如果他想对列进行反规范化并得到相同的最终结果,触发器可以帮助弥补对自定义函数的支持不足