#!/usr/bin/env python3 import psycopg2 try: db_conn = psycopg2.connect( database='db_test', user='test', password='qwerty', # user='postgres', # password='postgres', host='localhost' ) except Exception as e: print("error connection:", e) else: print('connection ok') db_cursor = db_conn.cursor() try: req = 'INSERT INTO test_table (id, description) VALUES (%s,%s)' vals = (3, "aaaa") db_cursor.execute(req, vals); except: print('write to table error') else: print('write to table ok') try: req = 'select id, description from test_table' db_cursor.execute(req); except: print('write to table error') else: print('get from table ok') rows = db_cursor.fetchall() for r in rows: print('___', r[0], r[1]) db_cursor.close() db_conn.close()
в результате через консоль вижу, что запись прошла успешно:
kalinin@lenovo ~/python/joba_finder $ python3 ./test.py connection ok write to table ok get from table ok ___ 1 qwqwqwddd ___ 3 aaaa
но после этого я захожу в postgres через консоль и вижу, что в таблице только 1 одна запись. то есть получается, что записать в таблицу у меня не получилось:
kalinin@lenovo ~/python/joba_finder $ sudo -u postgres psql psql (9.5.16) Type "help" for help. postgres=# \c db_test You are now connected to database "db_test" as user "postgres". db_test=# \dt List of relations Schema | Name | Type | Owner --------+------------+-------+------- public | test_table | table | test (1 row) db_test=# select * from test_table; id | description ----+------------- 1 | qwqwqwddd (1 row)
pgAdmin3 тоже показывает, что таблица имеет только одну запись: http://i.yapx.ru/D29zK.png
скажите пожалуйста в чём я ошибся? как мне всё таки записать в таблицу значения?