Mysql用户定义函数为计算存储列
我想添加一个计算出的空间列,该列具有我在MySQL 5.7.11中编写的函数的值 更改表格Mysql用户定义函数为计算存储列,mysql,Mysql,我想添加一个计算出的空间列,该列具有我在MySQL 5.7.11中编写的函数的值 更改表格块更改点坐标点坐标点坐标 (tile2点(x,y,20))存储 我得到一个错误: 生成的列“point_coord”的表达式包含不允许的函数。 tile2point是用户定义的返回点类型 当我使用基点()时,它正在工作 更改表格块更改点坐标点坐标点坐标 (点(x,y)存储 但是我还需要做一些其他的事情,这就是为什么我要做我的函数 这也正如预期的那样发挥作用: 选择*,平铺2点(x,y,20)作为块中的点坐标
块
更改点坐标
点坐标
点坐标
(tile2点(x
,y
,20))存储
我得到一个错误:
生成的列“point_coord”的表达式包含不允许的函数。
tile2point是用户定义的返回点类型
当我使用基点()时,它正在工作
更改表格块
更改点坐标
点坐标
点坐标
(点(x
,y
)存储
但是我还需要做一些其他的事情,这就是为什么我要做我的函数
这也正如预期的那样发挥作用:
选择*,平铺2点(x
,y
,20)作为块中的点坐标
我只想存储它,而不是在每个查询中计算它
在列中存储函数返回值需要做什么?
不允许使用子查询、参数、变量、存储函数和用户定义函数。
。请参阅。@wchiquito所以这是他试图用触发器完成任务的唯一方法吗?@BrianLeishman:由于以下限制,触发器不能使用NEW.col\u名称或使用OLD.col\u名称来引用生成的列。
。看。@wchiquito是的,我明白了,我只是说,如果他想对列进行反规范化并得到相同的最终结果,触发器可以帮助弥补对自定义函数的支持不足