测试时如何恢复表中的一个记录/行?

时间:2017-07-26 06:37:05

标签: java database oracle restore

我正在AM上进行Junit测试。

问题在于,在某些情况下,一行中的属性值会发生变化,有时甚至必须删除表中的整行。

如何在每个测试用例结束时以Java编程方式恢复行,因为我不想更改数据库中的数据?

谢谢!

1 个答案:

答案 0 :(得分:0)

对于将根据需要更新或插入记录的特定行使用merge。例如:

  

MERGE INTO奖金D USING(SELECT employee_id,salary,   department_id FROM employees WHERE department_id = 80)S ON   (D.employee_id = S.employee_id)匹配时更新设置   D.bonus = D.bonus + S.salary * .01        删除WHERE(S.salary> 8000)当插入不匹配时(D.employee_id,D.bonus)        VALUES(S.employee_id,S.salary * .01)        WHERE(S.salary< = 8000);

在Java中使用PreparedStatement调用它,例如:

preparedStatement = dbConnection.prepareStatement("Merge ..");

在生产中使用的另一个选项是flashback,它可以添加您可以返回的还原点。