我的数据库中有两个表(A,B)。 现在我将创建一个新表C,它来自与表B相同的列。我想写表B中的所有数据,几何在新表C中的表A中!
类似的东西:
CREATE TABLE "C" (ID2 serial PRIMARY KEY, "geom" geometry, "id" bigint, "Name" varchar, "Feature" int, "ID2" bigint, "Code_1" varchar, "Wert_1" varchar, "Code_2" varchar, "Wert_2" int);
INSERT INTO C (geom)
SELECT ST_Intersection (A.geom, B.geom)
From A, B
结果是交叉点后面的几何图形表。 此外,我也需要其余的数据(id,name ...)
答案 0 :(得分:2)
另一种选择是:
CREATE TABLE tableC (LIKE tableB INCLUDING ALL);
INSERT INTO tableC
SELECT b.* FROM tableB b
JOIN tableA ON NOT ST_IsEmpty(ST_Intersection (A.geom, B.geom));
这将为您创建所有索引和密钥。
答案 1 :(得分:1)
使用布尔函数ST_Intersects
CREATE TABLE tableC AS
SELECT tableB.*, -- (all field less geom)
ST_Intersection (A.geom, B.geom) as geom -- generate geom
FROM tableA
JOIN tableB
ON ST_Intersects (A.geom, B.geom) -- boolean function
之后记住你需要创建索引和约束,如PK或FK。