我有多个脚本将数据输入到同一个数据库中。我遇到的一个问题是,在走得太远之前,通常其中一个程序崩溃,原因是似乎存在重复的时间戳条目。
Message: '<class \'psycopg2.IntegrityError\'>: duplicate key value violates unique constraint "timestamp_key"\nDETAIL: Key ("timestamp")=(2016-09-12 16:23:51.171562+00) already exists.\n'
Arguments: ()
基本上,这两个程序试图在同一时间进行输入。由于时间戳应该是唯一的,这会导致问题,并且脚本此时就会停止。
我想知道是否有办法同时执行此操作。是否有可能使时间戳更精确,因此它不太可能发生冲突?或者还有其他选择在这种情况下会更好吗?
答案 0 :(得分:0)
准备重试:
dup_key_message = 'duplicate key value violates unique constraint'
while True:
try:
cursor.execute('insert into t (i) values (1)')
break
except psycopg2.IntegrityError as e:
conn.rollback()
print e
if dup_key_message != e[0][0:len(dup_key_message)]:
raise