PostgreSql и Python

1

Я использую python и postgresql. У меня есть стол с 6 столбцами. Один идентификатор и 5 записей. Я хочу скопировать идентификатор и самую повторяющуюся запись в 5 записей в новую таблицу.

Я сделал это:

import psycopg2
connection=psycopg2.connect("dbname=homedb user=ria")
cursor=connection.cursor()
l_dict= {'licence_id':1}
cursor.execute("SELECT * FROM im_entry.usr_table")
rows=cursor.fetchall()


cursor.execute("INSERT INTO im_entry.pr_table (image_1d) SELECT  image_1d  FROM im_entry.usr_table")



for row in rows:

   p = findmax(row) #to get most repeated entry from first table
   .................
   .................

Затем как я могу ввести это значение p в новую таблицу?

Пожалуйста, помогите мне

  • 0
    Это можно и нужно сделать целиком в одном SQL-выражении. Пожалуйста, покажите некоторые примерные данные таблицы и ожидаемые результаты. Все поля в повторяющейся записи идентичны?
  • 0
    текущая таблица - image_1d | entry1 | entry2 | entry3 | entry4 | entry5 ---------- + -------- + -------- + -------- + -------- + - ------ id1 | яблоко | яблоко | яблоко | яблоко | яблоко id2 | обезьяна | обезьяна | осел | обезьяна | обезьяна id3 | вырезать | вырезать | положить | положить | поставить id4 | получить | установить | установить | получить | получить и ожидается таблица image_1d | selected_entry ---------- + ---------------- id2 | id3 | id4 | | яблоко id1 | яблоко (5 рядов)
Показать ещё 2 комментария
Теги:
database
psycopg2

1 ответ

1
Лучший ответ

p - это кортеж, поэтому вы можете создать новый выполнить с помощью инструкции INSERT, передающей кортеж (или часть):

cursor.execute("INSERT INTO new_table (x, ...) VALUES (%s, ...)", p)

где:

  • (x,....) содержит имена столбцов
  • (% s,...)% s повторяется для каждого столбца
  • 0
    Возврат трассировки (последний вызов был последним): файл "homedb4.py", строка 54, в <module> cursor.execute ("INSERT INTO im_entry.pr_table (selected_entry) ЗНАЧЕНИЯ (% s) WHERE image_id =% s", стр. , idn) TypeError: требуется целое число
  • 0
    Файл "homedb4.py", строка 54, в <module> cursor.execute ("INSERT INTO im_entry.pr_table (selected_entry) VALUES ('% s')", p) TypeError: не все аргументы преобразованы во время форматирования строки
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню