为什么我插入到我的 AWS Postgres 数据库(使用 psycopg2)的任何行立即变成死元组?
Why does any row I insert into my AWS Postgres database (with psycopg2) immediately become a dead tuple?
将 psycopg2 连接到 AWS Postgres 服务器并插入一行时出现问题。
下面是一个测试脚本,它尝试连接到服务器并插入一行。当我在 pgAdmin 中使用它时,测试查询有效。即运行s成功,可以选择该行。
当我 运行 python 脚本时,服务器显示已建立连接。没有异常被抛出。我什至可以尝试插入大约一百行,并且流量会出现很大的峰值。然而在 table.
中什么也找不到
import psycopg2
from getpass import getpass
# connect to database
try:
connection = psycopg2.connect(
dbname = "postgres",
user = "username",
password = getpass(),
host = "blahblah.us-east-1.rds.amazonaws.com",
port = '5432'
)
print("connected!")
except:
print("oops")
#cursor object
cursor_boi = connection.cursor()
# simple test query
test_query = """INSERT INTO reviews (review_id, username, movie_id, review_date, review_text, review_title, user_rating, helpful_num, helpful_denom)
VALUES (1, 'myname', 12345678, '2016-06-23', 'I love this movie!', 'Me happy', 5, 6, 12 )"""
# execute query
try:
cursor_boi.execute(test_query)
print(test_query)
except:
print("oopsie!")
# close connection
if(connection):
cursor_boi.close()
connection.close()
我的 "reviews" table 的数据库统计报告如下:
插入的元组:257
已删除元组:1
死元组:8
上次自动清理:2019-12-13 15:49:20.369715+00
每次我 运行 Python 脚本时,Dead Tuples 字段都会递增。所以看起来我插入的每条记录都立即变成了一个死元组。为什么会这样,我该如何阻止它?我想记录正在被覆盖,但如果是这样,它们不会被任何东西取代。
已解决。我忘记提交与 connection.commit()
的连接。谢谢@roganjosh。
将 psycopg2 连接到 AWS Postgres 服务器并插入一行时出现问题。 下面是一个测试脚本,它尝试连接到服务器并插入一行。当我在 pgAdmin 中使用它时,测试查询有效。即运行s成功,可以选择该行。
当我 运行 python 脚本时,服务器显示已建立连接。没有异常被抛出。我什至可以尝试插入大约一百行,并且流量会出现很大的峰值。然而在 table.
中什么也找不到import psycopg2
from getpass import getpass
# connect to database
try:
connection = psycopg2.connect(
dbname = "postgres",
user = "username",
password = getpass(),
host = "blahblah.us-east-1.rds.amazonaws.com",
port = '5432'
)
print("connected!")
except:
print("oops")
#cursor object
cursor_boi = connection.cursor()
# simple test query
test_query = """INSERT INTO reviews (review_id, username, movie_id, review_date, review_text, review_title, user_rating, helpful_num, helpful_denom)
VALUES (1, 'myname', 12345678, '2016-06-23', 'I love this movie!', 'Me happy', 5, 6, 12 )"""
# execute query
try:
cursor_boi.execute(test_query)
print(test_query)
except:
print("oopsie!")
# close connection
if(connection):
cursor_boi.close()
connection.close()
我的 "reviews" table 的数据库统计报告如下:
插入的元组:257
已删除元组:1
死元组:8
上次自动清理:2019-12-13 15:49:20.369715+00
每次我 运行 Python 脚本时,Dead Tuples 字段都会递增。所以看起来我插入的每条记录都立即变成了一个死元组。为什么会这样,我该如何阻止它?我想记录正在被覆盖,但如果是这样,它们不会被任何东西取代。
已解决。我忘记提交与 connection.commit()
的连接。谢谢@roganjosh。