Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 6, 2019 18:57:18

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

Почему pgAdmin не видит изменения?

помогите пожалуйста разобраться. установил 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

скажите пожалуйста в чём я ошибся? как мне всё таки записать в таблицу значения?

Офлайн

#2 Апрель 6, 2019 19:44:05

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

Почему pgAdmin не видит изменения?

Нужно выполнить commit() после записи в базу:

 try:
    req = 'INSERT INTO test_table (id, description) VALUES (%s,%s)'
    vals = (3, "aaaa")
    db_cursor.execute(req, vals);
    db_conn.commit()     #совершить запись

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version