2016-07-25 16 views
0

为连接conn提供一个游标变量curr,在从其获取所有结果后“最终”放下一个表格是否安全?类似以下的东西是否可以安全地使用psycopg2在fetchall后面放置一个表格

curr.execute(some_select_query) 

try: 
    results = curr.fetchall() 
except: 
    some_error_handling() 
finally: 
    curr.execute(drop_table_query) 
    conn.commit() 

use_results_array_here 

是否所有结果都会被提取到结果数组中?性能是否会因为下降而受到影响?

回答

1

是,所有行会被取出作为元组的列表,但是,也许,你想用else代替finally

Else只有当try是succesfull,这样你避免删除表执行在获取期间出现错误(连接丢失等)。

curr.execute(some_select_query) 
try: 
    results = curr.fetchall() 
except: 
    some_error_handling() 
else: 
    curr.execute(drop_table_query) 
    conn.commit() 

use_results_array_here 
+0

该表是临时的,没有重试机制,但感谢您的建议。 – a1an

相关问题