2017-02-18 49 views
1

Спасибо всем за вашу помощь по этому вопросу. Я работаю над добавлением следующих значений в таблицу с именем lake: я использую postgresql на pgAdmin4.Тип данных для координат, который является частью записи 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, он допускает только integer []. Может ли быть путь через командную строку, чтобы объявить этот конкретный столбец с типами массивов? – AMMOTECH

ответ

1

Здесь вы должны использовать point type. Оба значения координат соответствуют одному point, и есть several functions that operate on points, такие как расчет расстояния и сдерживание в других геометрических объектах. Обратите внимание, что обычным образом хранить ординаты точек в порядке (x, y) или (долгота, широта).

Если вам нужны более сложные операции с координатами, вы можете установить postgis extension.