云数据库 GAUSSDB-事务
时间:2025-03-14 09:58:02
事务
- 【规格】大对象操作不支持事务。
大对象操作包括:创建删除DATABASE、ANALYZE和VACUUM。
- 【规则】通过JDBC客户端接入时,关闭autocommit参数,显式的执行事务的COMMIT。
- 一方面,开启autocommit参数,会导致部分参数(如fetchsize)失效。
- 另一方面,业务应明确业务逻辑,减少对数据库的依赖。
- 【规则】通过JDBC接入数据库时,避免拼接多条SQL为一条语句发送执行。
当多条语句拼接为一条语句时,其中一条执行失败后会整体返回失败,不利于定位错误,建议拆分。
示例:- 不符合规则语句:
Connection conn = .... try { Statement stmt = null; try { stmt = conn.createStatement(); stmt.executeUpdate("CREATE TABLE t1 (a int); DROP TABLE t1"); } finally { stmt.close(); } conn.commit(); } catch(Exception e) { conn.rollback(); } finally { conn.close(); }
- 建议拆分成两条语句分别发送:
Connection conn = .... try { Statement stmt = null; try { stmt = conn.createStatement(); stmt.executeUpdate("CREATE TABLE t1 (a int)"); stmt.executeUpdate("DROP TABLE t1"); } finally { stmt.close(); } conn.commit(); } catch(Exception e) { conn.rollback(); } finally { conn.close(); }
- 不符合规则语句:
父主题: 数据库编程规范
support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-45-0122.html