Я пытаюсь вставить некоторые значения в таблицу 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. Похоже, строки вставляются, а затем удаляются, когда программа завершает выполнение. У меня закончились идеи на этот счет.