无法在我的python脚本中保存PostgreSQL中的更改



我尝试在我的python脚本中运行查询,在控制台中,我看到它们执行得还可以,但当我看到我的Postgre数据库时,更改不会显示


_DATABASE = 'DB'
_USERNAME = 'XXXXXXX'
_PASSWORD = 'XXXXXXX'
_DB_PORT = '5432'
_HOST = '127.0.0.1'
conection_DB = None
cursor = None
try:
connection_DB = psycopg2.connect(
host=_HOST,
dbname=_DATABASE,
user=_USERNAME,
password=_PASSWORD,
port=_DB_PORT)
cursor = connection_DB.cursor()
query1 = 'UPDATE samples SET sample_code=%s, sample_type=%s WHERE sampleid=%s'
query2 = 'INSERT INTO samples(sample_code, sample_type) VALUES(%s, %s)'
query3 = 'DELETE FROM samples WHERE sample_internal_id=%s'
query4 = 'SELECT * FROM samples'
#SELECT QUERY 1
cursor.execute(query4)
for record in cursor.fetchall():
print(record)
#INSERT QUERY
values2 = ('rrr-rrr', 'SampleType1')
cursor.execute(query2, values2)
#UPDATE QUERY
values1 = ('jjj-jjj', 'SampleTyp2', 5)
cursor.execute(query1, values1)
#SELECT QUERY 2
cursor.execute(query4)
for record in cursor.fetchall():
print(record)
except Exception as error:
print('Error in DataBase communication') 

在控制台中,我看到我的";选择查询2";显示其他查询工作正常并保存在我的数据库中,但从PgAdmin我发现这不是真的。

我想你错过了"提交";作用因为您只执行查询而不将查询提交到DB。

您可以在最后一次查询执行后添加提交

...
# Committing all query transaction
connection_DB.commit()
# Don't forget to close the connection
connection_DB..close()
...

参考文献:此处

已解决!

使用connection.commit()将更改保存到数据库中。

最新更新