Найти - Пользователи
Полная версия: Почему pgAdmin не видит изменения?
Начало » Базы данных » Почему pgAdmin не видит изменения?
1
zlodiak
помогите пожалуйста разобраться. установил postgres9.5, создал пользователя, БД, таблицу. из скрипта пытаюсь сделать запись в таблицу так:
 #!/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

скажите пожалуйста в чём я ошибся? как мне всё таки записать в таблицу значения?
rami
Нужно выполнить commit() после записи в базу:
 try:
    req = 'INSERT INTO test_table (id, description) VALUES (%s,%s)'
    vals = (3, "aaaa")
    db_cursor.execute(req, vals);
    db_conn.commit()     #совершить запись
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB