Отсутствуют данные вставки - PostgreSQL и Python

Я пытаюсь вставить некоторые данные в свою базу данных PostgreSQl с помощью Python (psycopg2).

Каждый отлично работает с моим SELECT-оператором, например:

cur = g.db.cursor()
cur.execute("""SELECT id FROM mydb where weight>%(weight)s and length<=%(length)s;""",{'weight':weight,'length':length})

Теперь я пытаюсь добавить новые данные так же, как и выше. Код такой

cur = g.db.cursor()
cur.execute("""INSERT INTO mydb (id, weight, length) VALUES (%(id)s, %(weight)s, %(length)s, );""",{'id':id,'weight':weight,'length':length})

Но я не вижу новых строк в pgadmin. Без какого-либо сообщения об ошибке. Я также копирую оператор в SQL-редактор pgadmin, и все работает нормально.

Есть ли у кого-нибудь советы по отладке, отслеживанию моей ошибки?


person CanadaRunner    schedule 18.04.2015    source источник
comment
Сначала вы должны проверить, что подобный вопрос еще не задавался, либо с помощью поиска в StackOverflow, либо в Google. Простой поиск сразу дал мне два ответа StackOverflow.   -  person Eric O Lebigot    schedule 18.04.2015
comment
@EOL: Можешь добавить ссылку?   -  person Kishor Pawar    schedule 18.04.2015
comment
Я ищу примерно 1,5 часа, но со слишком специфическими ключевыми словами. Работает после того, как я отключил свой настраиваемый поиск Google   -  person CanadaRunner    schedule 18.04.2015
comment
Думаю, я понял вашу ошибку, вы не поместили заполнители для своих значений в VALUES()   -  person Kishor Pawar    schedule 18.04.2015
comment
@EOL: Спасибо, работает отлично!, но почему выбор работает, а вставка нет?   -  person CanadaRunner    schedule 18.04.2015
comment
@CanadaRunner: INSERT не работает, потому что вы должны зафиксировать изменения до того, как они действительно будут внесены в базу данных (по определению транзакции). Теперь я предполагаю, что SELECT работает, потому что он не вызывает изменения базы данных, поэтому нет проблем с ее чтением (даже внутри транзакции).   -  person Eric O Lebigot    schedule 18.04.2015
comment
@KishorPawar Ссылка отображается в окне повторяющегося вопроса вверху.   -  person Eric O Lebigot    schedule 18.04.2015
comment
да верно, но проблема CanadaRunner в другом. Ему нужно использовать фиксацию, как описано в этом вопросе, но ему также не хватает заполнителей.   -  person Kishor Pawar    schedule 18.04.2015
comment
@KishorPawar Я согласен с тем, что следует использовать заполнители, но это не решит вопрос CanadaRunner, который заключается в том, что он не видит никаких новых строк в pgadmin. PS: Если вы хотите, чтобы люди видели ваши комментарии, вы должны ссылаться на них (@EOL), иначе они не будут уведомлены (по умолчанию уведомляется только автор ответа или вопроса).   -  person Eric O Lebigot    schedule 20.04.2015
comment
@EOL: о, спасибо за совет.   -  person Kishor Pawar    schedule 20.04.2015