我有一个功能
insertPoint(pt Point),
在函数中,我想改变pt的值,即在函数let中,
pt.x:=pt.x+1.0
这不起作用。我尝试过很多东西,但没有运气。文档建议使用更新。我试过了:
UPDATE POINT SET pt[0] = 2.0*pt.x;
再次,没有运气。
有人可以提供帮助。
答案 0 :(得分:1)
PostgreSQL point
不是一个复杂类型,因此您无法使用point.x
/ point.y
等字段访问和/或设置其坐标。
相反,您可以使用下标来访问它们,例如数组:point[0]
& point[1]
:
UPDATE <table> SET pt[0] = 2.0 * pt[0];
在PL / pgSQL中:
pt[0] := pt[0] + 1.0;
或者,您可以使用point(double precision, double precision)
构造函数创建新的point
实例:
UPDATE <table> SET pt = point(2.0 * pt[0], pt[1]);
在PL / pgSQL中:
pt := point(pt[0] + 1.0, pt[1]);
您可以访问lseg
(线段)&amp;的成员类似地box
(虽然它没有记录),但其他几何类型不允许使用SQLFiddle。