我正在写一个postgres函数来执行一些空间计算。
我需要从作为函数参数的两个表中错误地捕获不正确的几何图形和不匹配的srid
下面的代码工作,但似乎是一个糟糕的方式来实现这一点。
-- check the geometries in each table
EXECUTE format('SELECT DISTINCT ST_GeometryType(geom) FROM %s', master_table)
INTO master_type_holder;
IF master_type_holder != 'ST_Polygon' THEN
RAISE EXCEPTION 'master table geometries must be type ST_Polygon';
END IF;
EXECUTE format('SELECT DISTINCT ST_GeometryType(geom) FROM %s', ref_table)
INTO ref_type_holder;
IF ref_type_holder != 'ST_Polygon' THEN
RAISE EXCEPTION 'Reference table geometries must be type ST_Polygon';
END IF;
谢谢你的建议
1条答案
按热度按时间drkbr07n1#
因为您希望所有记录都是同一类型的,所以最快和最安全的方法是将列限制为正确的类型,并简单地确保列是正确的类型