选择或插入时自动在列上调用功能

时间:2019-02-11 20:39:42

标签: sql postgresql postgis wkb

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

谢谢

0 个答案:

没有答案