作为sql记录一部分的坐标的数据类型

时间:2017-02-18 22:52:47

标签: sql postgresql coordinates sqldatatypes

感谢大家对此事的帮助。我正在努力将以下值插入到名为lake的表中:我在pgAdmin4上使用postgresql。

INSERT INTO lake VALUES ('Inari',1040,92,119,NULL,'Paatsjoki',(68.95,27.7));
INSERT INTO lake VALUES ('Oulujaervi',928,35,123,NULL,'Oulujoki',(64.3,27.25));
INSERT INTO lake VALUES ('Kallavesi',472,NULL,NULL,NULL,'Vuoksi',(62.9,27.7));
INSERT INTO lake VALUES ('Saimaa',4370,85,76,NULL,'Vuoksi',(61.3,28.0));

    INSERT INTO public.lake
(
        name character varying(30), 
        area integer, 
        depth integer, 
        elevation integer,
        river character varying(30), 
        type character varying(30),
        coordinates integer
);

列坐标是INT数据类型。但是我收到了一个错误 错误:列"坐标"是int类型,但表达式是记录类型。

问题:什么数据类型可以使上述数据存储在我的坐标列中而不会收到错误消息?

再次感谢大家的帮助。

1 个答案:

答案 0 :(得分:1)

您应该在这里使用point type。两个坐标值都适合单个IFS=$'\n' read -d '' -ra arr,并且有several functions that operate on points,例如距离计算和其他几何对象中的包含。请注意,习惯上以(x,y)或(经度,纬度)顺序存储点纵坐标。

如果您需要更复杂的坐标操作,可以安装postgis extension