我试图找到一种方法来自动调用特定列上的函数,而不是在 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解决方案吗?
谢谢