小编das*_*s-g的帖子

当多行 INSERT 由于几何类型不匹配而失败时,我可以让 PostgreSQL 报告有问题的行吗?

INSERT INTO当其中一些行的 PostGIS 几何类型的值与目标表中相应行的 PostGIS 几何类型不兼容时,使用单个语句将多行插入到表中会失败(如预期的那样):

CREATE EXTENSION postgis;

CREATE TABLE t (
    id integer,
    p geometry(POINT)
);

INSERT INTO t
VALUES
    ( 1, ST_GeometryFromText('Point(0 0)')      ),
    ( 2, ST_GeometryFromText('Point(1 2)')      ),
    ( 3, ST_GeometryFromText('MultiPoint(2 3)') ),
    ( 4, ST_GeometryFromText('Point(5 23)')     ),
    ( 5, ST_GeometryFromText('Point(42 36)')    );
Run Code Online (Sandbox Code Playgroud)

错误消息告诉我们到底出了什么问题:

CREATE EXTENSION postgis;

CREATE TABLE t (
    id integer,
    p geometry(POINT)
);

INSERT INTO t
VALUES
    ( 1, ST_GeometryFromText('Point(0 0)')      ),
    ( 2, ST_GeometryFromText('Point(1 2)')      ),
    ( 3, ST_GeometryFromText('MultiPoint(2 3)') ), …
Run Code Online (Sandbox Code Playgroud)

postgresql insert error-handling postgis

5
推荐指数
1
解决办法
1543
查看次数

标签 统计

error-handling ×1

insert ×1

postgis ×1

postgresql ×1