几种多数据库表update的方式测试

简介: 几种多数据库表update的方式测试

Created by Jerry Wang, last modified on Jun 13, 2014

假设有数据库表ZUPDATE_TEST1和ZUPDATE_TEST2 需要同时update,理论上有下列几种方式.

本文模拟了表2 执行update的上下文如果有fatal exception发生的情况( 通过在update 表2的function module里人为加上ASSERT 1 = 0 的语句),目的是检查表1和表2的更新是否真正persist到数据库里。


1. 表1在normal的work process里进行update,表2通过update function module进行update

REPORT ZUPDATE_NORMAL_AND_UPDATE.
PARAMETERS: index type int4 OBLIGATORY.
data: ls_data type zupdate_test2.
ls_data-myindex = index.
ls_data-text = 'test' && index.
insert ZUPDATE_TEST1 FROM ls_Data.
WRITE: / 'result: ', sy-subrc.
CALL FUNCTION 'ZUPDATE_TEST2' IN UPDATE TASK
   EXPORTING
      index = index.
COMMIT WORK AND WAIT.
FUNCTION ZUPDATE_TEST2.
data: ls_data type zupdate_test2.
ls_data-myindex = index.
ls_data-text = 'test' && index.
insert ZUPDATE_TEST2 FROM ls_Data.
ASSERT 1 = 0.
ENDFUNCTION.

结果: 表1成功更新,表2更新失败( 对应的entry未插入到数据库里)

2. 表1和表2分别在不同的两个update function module里更新,表2更新的update function module里有fatal exception发生.

REPORT ZUPDATE_TWO_UPDATE_CALL.
PARAMETERS: index type int4 OBLIGATORY.
CALL FUNCTION 'ZUPDATE_TEST1' IN UPDATE TASK
   EXPORTING
      index = index.
CALL FUNCTION 'ZUPDATE_TEST2' IN UPDATE TASK
   EXPORTING
      index = index.
COMMIT WORK AND WAIT.

结果: 表1和表2均未更新。

结果: 表1和表2均未更新。
3. 表1和表3的更新放在同一个update function module里
相关文章
|
7天前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
4月前
|
SQL 数据库
`UPDATE FROM` 的语法以及常见的更新操作方式
`UPDATE FROM` 的语法以及常见的更新操作方式
517 2
|
5月前
|
SQL IDE Java
hibernate5 增加、修改、删除和执行SQL
hibernate5 增加、修改、删除和执行SQL
30 0
|
5月前
|
SQL 存储 Java
MyBatis【付诸实践 02】 mapper文件未编译+statementType使用+返回结果字段顺序不一致+获取自增ID+一个update标签批量更新记录
MyBatis【付诸实践 02】 mapper文件未编译+statementType使用+返回结果字段顺序不一致+获取自增ID+一个update标签批量更新记录
65 0
|
5月前
|
SQL 关系型数据库 MySQL
②【MySQL表操作】 数据库表的创建、查询、修改、删除
②【MySQL表操作】 数据库表的创建、查询、修改、删除
91 0
|
SQL 关系型数据库 MySQL
php开发实战分析(1):mysql操作字段(添加、删除、修改,多数据表中新增多个字段)
php开发实战分析(1):mysql操作字段(添加、删除、修改,多数据表中新增多个字段)
160 0
|
Java 数据库连接 数据库
hibernate查询出的实体,set值后,自动更新到数据库
hibernate查询出的实体,set值后,自动更新到数据库
467 2
hibernate查询出的实体,set值后,自动更新到数据库
|
SQL 存储 数据库
SQL 基础(二)数据表的创建、约束、修改、查看、删除
SQL 基础(二)数据表的创建、约束、修改、查看、删除
259 0
SQL 基础(二)数据表的创建、约束、修改、查看、删除
|
SQL 数据库
SQL 基础(一)创建、查看、修改、删除数据库
SQL 基础(一)创建、查看、修改、删除数据库
441 0
SQL 基础(一)创建、查看、修改、删除数据库
下一篇
无影云桌面