Невозможно вставить данные для вставки данных в таблицу postgres с помощью pgdb - PullRequest
1 голос
/ 23 августа 2011

Я пытаюсь вставить некоторые значения в таблицу postgres в скрипте Python, используя pgdb.

Сначала я попробовал это:

cursor.execute('INSERT INTO sites (url) VALUES (%s)', (i,))

Это не сработало, поэтому я изменил его на

print 'INSERT INTO sites (url) VALUES (\'%s\')' %(i)
cursor.execute('INSERT INTO sites (url) VALUES (\'%s\')' %(i))

Выходные данные из оператора печати: INSERT INTO sites (url) VALUES ('72.240.34.19:80')

Если я вставлю вышеуказанный вывод в psql, он будет работать (т.е. строка вставлена). В скрипте не генерируются ошибки, но строки не вставляются. У пользователя есть все привилегии, и курсор активен (я могу выполнять выбор и т. Д.)

Поскольку я впервые использую postgres, я подозреваю, что я упускаю что-то очевидное. Я просмотрел все примеры, которые мог найти, но не смог выяснить, что не так с моим кодом.

Edit: Я добавил эту строку в код: print 'Rowcount %s' %(cursor.rowcount)

Это выводит Rowcount 1 Но SELECT * FROM sites пусто

Второе редактирование: Это странно Я вручную вставил строку в таблицу. Это автоматически сгенерированный идентификатор, который имеет тип serial был 10. Я запускал скрипт 3 раза, так как ранее строки не были вставлены. Теперь, когда я вставил строку вручную, ее идентификатор стал 14. Похоже, строки вставляются, а затем удаляются, когда программа завершает выполнение. У меня закончились идеи на этот счет.

1 Ответ

0 голосов
/ 30 августа 2011

См. Комментарий к заданию // что-то, что я должен написать, потому что стек требует 30 символов //

...