GPDBcurrenttransactionisaborted
Jun 07, 2016 pm 04:12 PM在用Python操作GPDB的时候遇到报错如下 gpmg.manager_tabl1eerror 'ERROR: relation gpmg.manager_tabl1e does not exist' in 'select pg_total_relation_size('gpmg.manager_tabl1e');'gpmg.manager_tableerror 'ERROR: current transaction is aborted, co
在用Python操作GPDB的时候遇到报错如下
gpmg.manager_tabl1e error 'ERROR: relation "gpmg.manager_tabl1e" does not exist ' in 'select pg_total_relation_size('gpmg.manager_tabl1e');' gpmg.manager_table error 'ERROR: current transaction is aborted, commands ignored until end of transaction block ' in 'select pg_total_relation_size('gpmg.manager_table');'
登录后复制
这个在一个循环当中,收集对象大小并插入结果表,出现这个错误的原因是因为在GPDB中如果有出现任何错误,将导致后续的会话报错。
Python代码块如下
sql = "select v1,v2,v3 from test order by 2" cur.execute(sql) for ret in cur.fetchall(): v_schemaname = ret[0] v_tablename = ret[1] v_tableowner = ret[2] v_object = v_schemaname + "." + v_tablename try: cur.execute("select pg_total_relation_size('" + v_object + "');") v_totalsize = cur.fetchone()[0] cur.execute("insert into gpmg.table_size_info (ctime,schemaname,tablename,tableowner,totalsize) values(%s,%s,%s,%s,%s)", (ctime,v_schemaname,v_tablename,v_ta bleowner,v_totalsize)) except Exception, e: print v_object print e
登录后复制
改进之后如下
try: for ret in cur.fetchall(): v_schemaname = ret[0] v_tablename = ret[1] v_tableowner = ret[2] v_object = v_schemaname + "." + v_tablename try: cur.execute("select pg_total_relation_size('" + v_object + "');") v_totalsize = cur.fetchone()[0] cur.execute("insert into gpmg.table_size_info (ctime,schemaname,tablename,tableowner,totalsize) values(%s,%s,%s,%s,%s)", (ctime,v_schemaname,v_tablename,v_tableowner,v_totalsize)) db.commit() except Exception, e: db.commit() print v_object, '--', e continue except Exception, e: pass finally: db.commit() db.close() os.system('rm -rf ' + pf)
登录后复制
这样就算比较完美咯。
-EOF-
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?
