Я пытаюсь вставить широту и долготу, которые хранятся в виде переменных python, в таблицу в PostgreSQL с помощью запроса INSERT.Любые предложения о том, как разыграть Point, кроме того, что я пробовал?
Сначала я попытался вставить запрос, как показано ниже -
Это таблица:
cur.execute('''CREATE TABLE AccidentList (
accidentId SERIAL PRIMARY KEY,
cameraGeoLocation POINT,
accidentTimeStamp TIMESTAMPTZ);''')
Try1:
cur.execute("INSERT INTO AccidentList(cameraGeoLocation,accidentTimeStamp)
VALUES {}".format((lat,lon),ts));
Ошибка:
> Подсказка: psycopg2.ProgrammingError: столбец "camerageolocation" имеет тип точки, но выражение имеет тип числовой
LINE 1: ... ist (cameraGeoLocation, emergencyTimeStamp) ЗНАЧЕНИЯ (13.0843,8 ... ^
СОВЕТ: Вам нужно будет переписать или привести выражение.
Try2:
query = "INSERT INTO AccidentList (cameraGeoLocation,accidentTimeStamp)
VALUES(cameraGeoLocation::POINT, accidentTimeStamp::TIMESTAMPTZ);"
data = ((lat,lon),ts)
cur.execute(query,data)
Ошибка:
LINE 1: ... List (cameraGeoLocation, emergencyTimeStamp) ЗНАЧЕНИЯ (cameraGeoL ... ^
СОВЕТ: В таблице «список аварий» есть столбец с именем «camerageolocation», но на него нельзя ссылатьсяиз этой части запроса.
Попробуйте 3:
query = "INSERT INTO AccidentList (camerageolocation ,accidenttimestamp) VALUES(%s::POINT, %s);"
data = (POINT(lat,lon),ts)
cur.execute(query,data)
Ошибка:
cur.execute (запрос, данные) psycopg2.ProgrammingError: не может привести запись типа к точке LINE 1: ...tion, отметка времени аварии) VALUES ((13.0843, 80.2805) :: POINT, '...