几种多数据库表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 TASKEXPORTINGindex = 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 TASKEXPORTINGindex = index.
CALL FUNCTION 'ZUPDATE_TEST2' IN UPDATE TASKEXPORTINGindex = index.
COMMIT WORK AND WAIT.
结果: 表1和表2均未更新。
3. 表1和表3的更新放在同一个update function module里
REPORT ZUPDATE_IN_SINGLE_CALL.
PARAMETERS: index type int4 OBLIGATORY.
CALL FUNCTION 'ZUPDATE_TEST_BOTH' IN UPDATE TASKEXPORTINGindex = index.
COMMIT WORK AND WAIT.
FUNCTION ZUPDATE_TEST_BOTH.
data: ls_data type zupdate_test1.
ls_data-myindex = index.
ls_data-text = 'test' && index.
insert ZUPDATE_TEST1 FROM ls_Data.
data: ls_data1 type zupdate_test2.
ls_data1-myindex = index.
ls_data1-text = 'test' && index.
insert ZUPDATE_TEST2 FROM ls_Data1.
ASSERT 1 = 0.
ENDFUNCTION.
结果:表1和表2均未更新
几种多数据库表update的方式测试相关推荐
- Form表单, 4种常见的表单提交方式
浏览器行为:Form表单提交 1.form表单常用属性 1 2 3 4 action:url 地址,服务器接收表单数据的地址 method:提交服务器的http方法,一般为post和get name: ...
- 使用数据库表查询的方式直接获得CRM服务订单的sold to party信息
Suppose I need to get this service order's Sold to party info: Here below is how-to: (1) get order 8 ...
- 达梦数据库表新增字段速度测试
给表新增字段是一项日常需求,数据库在这种DDL的资源消耗还是很大的,达梦数据库在新增字段方面有些学习了oracle 11g的思路. 达梦数据库提供了参数 ALTER_TABLE_OPT 来控制添加字段 ...
- 一种可以避免数据迁移的分库分表scale-out扩容方式
原文地址:http://jm-blog.aliapp.com/?p=590 目前绝大多数应用采取的两种分库分表规则 mod方式 dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月 ...
- Hibernate中自动生成数据库表的两种方式
第一种方式:Hibernate中利用工具类自动生成数据库表 1.建好POJO object, XML Mapping File,配置文件(hibernate.cfg.xml). 2.编写工具类 imp ...
- mysql数据库有几种删除方式_sql有几种删除表数据的方式
有几种删除表数据的方式? truncate.delete和drop都可以删除数据. TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作. TRUNCATE TABLE 与没有 WHE ...
- Activiti6自学之路(五)—— 部署流程资源的四种方式及数据库表更新情况
创建了流程图资源后, 一般我们需要对创建的资源如(leave.bpmn.leave.png)进行部署,部署方式我这里列出四种方式,前三种为单个流程资源的部署,第四种方式可以同时部署多个流程资源. 一. ...
- Navicat premium查看数据库表中文注释的两种方式
有时候我需要查看数据库表中文注释,来确定每个表存的是哪个模块的数据,确保测试时对数据库查询操作无误. 这个操作我忘记了,此处做一个记录 方式一:通过sql语句来,前提是你知道是哪个表,这种方式不容易改 ...
- 知行EDI系统如何通过中间数据库表方式集成金蝶ERP
金蝶ERP作为目前使用最广泛的业务系统之一,面向不同的服务群体有不同类别的软件,主要有企业管理软件.协同管理软件.政府非盈利组织管理软件.夯实的数据整合管理能力和应对不同业务的实施灵活性,让金蝶ERP ...
最新文章
- 远程办公,为什么一直不被公司普遍接受?
- linux给文件赋权限找不到,linux 文件赋权限
- 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)
- 自己动手架设linux下Web服务器(图)4
- 想学高级软件测试去哪里学,软件测试要学多久
- JVM-类加载、GC回收机制
- 使用Automake,Autoconf生成Makefile
- Java小游戏 超级玛丽源码分享
- 《Java编程规范学习笔记》
- 企业盈利能力五大指标之:净利润现金流比率
- MOOC有效沟通技巧答案(全)
- HTML5小游戏程序案例--冰桶挑战h5案例
- 【OptiX】第6个示例 折射,玻璃材质
- postfix各类故障详细分析与解决
- 沐风老师3DMAX网球建模教程
- web后台管理系统框架
- TCP实现可靠传输的实现
- 纯原生 js 简易 实现 鼠标拖尾效果
- nginx 配置 https双向认证
- mapinfo常用功能系列讲解——(3)统计线段长度(SQL统计法)
热门文章
- sonar api 获取质量数据
- springMVC通过spring.xml对属性注入bean值(工厂模式)
- Latex指南(part2)--Latex入门之组织文档结构
- 《自卑与超越》读书笔记(part1)--行为举止永远受到人生意义的制约
- 51单片机 简易光电循迹小车
- 谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
- SAP UI5 应用开发教程之十二 - 使用 CSS 类对 UI 进行进一步美化
- SAP Spartacus在某些屏幕尺寸下无法正常工作的原因分析
- SAP Spartacus organization unit list抬头显示所有unit的标题实现
- Spring 基于注解(annotation)的配置之@Autowired注解