PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Проблем за вмъкване с помощта на psycopg

INSERT изявлението има невалиден синтаксис. Има нещо нередно вътре в цикъла for, който споменавате.
Трябва да включите цикъла for във въпроса.

ВЪВЕТЕ ВЪВ "DUMMY1km" (данни) СТОЙНОСТИ ([[-3000 -3000 -3000 .....

Валидният израз може да изглежда така - ако приемем, че колоната ви е от тип integer[] .
... което също трябва да включите във въпроса.

INSERT INTO "DUMMY1km"(data) VALUES ('{-3000, -3000}'::int[])

или

INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[-3000, -3000])  -- note the "ARRAY"

или за двумерен масив (изглежда малко така в съобщението за грешка):

INSERT INTO "DUMMY1km"(data) VALUES ('{{-3000, -3000}, {-3000, -3000}}'::int[])

или

INSERT INTO "DUMMY1km"(data) VALUES (ARRAY[[-3000, -3000],[-3000, -3000]])

Повече за въвеждането на стойности на масива в ръководството.

Ерго:

matData[i] трябва да съдържа ARRAY[-3000, -3000] или един от другите изброени варианти на валиден синтаксис вместо [[-3000 -3000 -3000 ... което не е валидно за целочислен масив.

Psychopg автоматично преобразува PostgreSQL масив в списък на Python . Когато създавате INSERT, трябва да конвертирате списъка обратно в масив. Цитирам от тук:

Python lists are converted into PostgreSQL ARRAYs:

>>> cur.mogrify("SELECT %s;", ([10, 20, 30], ))
'SELECT ARRAY[10, 20, 30];'

Отказ от отговорност:Аз съм експерт по PostgreSQL, не толкова по Python. За някой, който познава Python по-добре от мен, би трябвало да е лесно да се форматира съответно низа. Намерих горния цитат в бързо проучване в мрежата.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Имената на колоните в PostgreSQL са чувствителни към главни букви?

  2. Избройте всички таблици в postgresql information_schema

  3. Поведение на NOT LIKE със стойности NULL

  4. Spring + Hibernate:Използване на кеш паметта на план за заявка

  5. Върнете се към readline версия 6.x в Homebrew, за да коригирате Postgresql?