2017-02-18 6 views
1

この問題に関して皆様のご支援をいただき、ありがとうございます。私はlakeという名前のテーブルに次の値を挿入しようとしています。私はpgAdmin4でpostgresqlを使用しています。SQLレコードの一部である座標のデータ型

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

テーブルの構造を表示します。 –

+1

「ARRAY」タイプを使用してください:https://www.postgresql.org/docs/9.1/static/arrays.html – djthoms

+0

フィードバックdjthomsをありがとう。私はドキュメントを読んで、pgAdmin4を使って整数[] []として座標を宣言することができません。これは整数[]のみを許可します。おそらく配列型を持つ特定の列を宣言するためのコマンドラインの方法がありますか? – AMMOTECH

答えて

1

ここでpoint typeを使用してください。両方の座標値は単一のpointに収まり、他の幾何学的オブジェクトには距離計算や包含など、several functions that operate on pointsがあります。点の縦座標を(x、y)または(経度、緯度)順に格納するのが通例であることに注意してください。

座標にさらに複雑な操作が必要な場合は、postgis extensionをインストールできます。

関連する問題