这是代码:
create function add_point(x integer, y integer) returns void as $$
begin
insert into auto values(
'point("'x|| ' '|| y'")',
'point(0474735 1559415)',
'point(0474757 1559414)',
'point(0474751 1559496)',
'SRID=20137;POLYGON((0474713 1559420, 0474735 1559415, 0474757 1559414, 0474743 1559471, 0474751 1559496, 0474748 1559498, 0474713 1559420))'
);
end; $$ language plpgsql;
select add_point(0474713, 1559420);
在执行add_point
函数期间,它会引发以下错误:
错误:语法错误在或附近" x"第7行:插入自动值( '指向("' x ||'' || y'")','指向(047 .. 。 ^ **********错误**********
错误:语法错误在或附近" x" SQL状态:42601字符:126
任何想法?
答案 0 :(得分:1)
显然,您的auto
表格后面有5个geometry
列。那很好,但这是真的吗?如果没有,则应使用括号分隔单独行上的几何。
您的即时错误与将参数拼接到第一个POINT geometry
:
insert into auto values(
'point(' || x || ' ' || y || ')',
...
答案 1 :(得分:1)
错误与你制作积分的方式有关。它在其他方面也是低效且容易出错的。当您可以将参数用作数字时,无需使用字符串连接:
let post = PFObject(className: "Post")
//increment like this
post.count += 1
//decrement like this
post.count -= 1
//refresh screen
//call reloadData()
我还会更改其他点定义以使用此格式。这将确保格式,链接或任何东西永远不会出现任何问题。
同样为点设置SRID也可能有用,因为您可以使用INSERT INTO auto VALUES (ST_point(x, y), ...