GPDB current transaction is aborted
来源:互联网 发布:2017网络购物交易额 编辑:程序博客网 时间:2024/06/03 03:43
在用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, 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_tableowner,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 continueexcept Exception, e: pass finally: db.commit() db.close() os.system('rm -rf ' + pf)
这样就算比较完美咯。
-EOF-
0 0
- GPDB current transaction is aborted
- postgresql错误解决 ERROR:current transaction is aborted
- Rails控制台出现current transaction is aborted错误的解决
- PostgreSQL错误解决:ERROR: current transaction is aborted, commands ignored until end of transaction blockp
- postgresql ERROR: current transaction is aborted, commands ignored until end of transaction block
- ERROR: current transaction is aborted, commands ignored until end of transaction block
- ERROR: current transaction is aborted, commands ignored until end of transaction block
- PostgreSQL错误解决:ERROR: current transaction is aborted, commands ignored until end of transaction bloc
- 关于current transaction is aborted, commands ignored until end of transaction block与ON_ERROR_ROLLBACK
- 关于current transaction is aborted, commands ignored until end of transaction block与ON_ERROR_ROLLBACK
- The transaction has aborted.
- The transaction has aborted.
- Ext.Net Status text: transaction aborted
- fetched sqlsession from current transaction
- Cannot perform this operation because there is no current transaction(不能执行此操作,因为没有当前事务。)
- Openstack: aborted: Block Device Mapping is Invalid
- no transaction is in progress
- 【Hibernate】Could not obtain transaction-synchronized Session for current thread
- C++ 开源库 汇总
- JavaScript初探之——图片移动
- ubuntu 14.04安装gnome3桌面
- JSON 字符串 互相转换
- Android设置大字体后文字被遮盖、显示补全问题解决
- GPDB current transaction is aborted
- 根据两点经纬度计算距离
- mysql 各种级联查询后更新(update select).
- Hbase安装手册
- [LeetCode] Evaluate Reverse Polish Notation
- 22发送图片的消息类型的布局实现
- NodeJS Get
- POJ 3277(离散化,线段树)
- @RequestMapping 用法详解之地址映射