我试图找到一种自动在特定列上调用函数的方法,而无需在sql语句中实际调用它。
我将PostGIS与不同类型的几何类型一起使用。我需要以众所周知的二进制(WKB)格式插入并选择所述几何列,这需要调用ST_GeomFromWKB()
来插入WKB,并调用ST_AsBinary()
来检索相同格式的数据。
假设我有一个已定义的表:
CREATE TABLE IF NOT EXISTS geomtest (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
geom geometry(POLYGON, 4326) NOT NULL
);
我想定义一种在geom
列上调用适当函数的方法,同时例如,如果我要调用的话,自己引用该列:
SELECT * FROM geomtest;
在幕后,我想打电话给
SELECT id, name, ST_AsBinary(geom) FROM geomtest;
与插入内容相同,但在幕后调用ST_GeomFromWKB()
。
请注意,默认情况下返回的类型为geometry
(以十六进制格式),但是在调用ST_AsBinary()之后,类型为bytea
。
我尝试使用视图来使其正常工作。它可以选择,但不能插入。我也研究了规则和触发器,但是不确定是否可以做我希望的事情。
是否有针对此问题的sql解决方案?
谢谢