2017-07-26 49 views
2

我正在對AM進行Junit測試。如何在測試時恢復表中的一條記錄/行?

問題是,在某些情況下,某行中的屬性值發生更改,有時甚至必須刪除表中的整行。

如何在每個測試用例的末尾以Java編程方式恢復行,因爲我不想更改數據庫中的數據?

謝謝!

回答

0

對於將根據需要更新或插入記錄的特定行使用merge。例如:

合併到獎金D使用(SELECT僱員,工資, 部門標識FROM僱員WHERE部門= 80)S ON (D.employee_id = S.employee_id)WHEN MATCHED THEN SET UPDATE D.bonus = D.bonus + S.salary * .01 DELETE WHERE(S.salary> 8000)WHEN NOT MATCHED THEN INSERT(D.employee_id,D.bonus) VALUES(S.employee_id,S.salary * .01) WHERE (S.salary < = 8000);

在Java調用它的PreparedStatement,例如:

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

另一種選擇是不是在生產中使用是flashback可加還原點,你可以返回。

+0

謝謝......但事情是,如果我們刪除了整行,我們如何將它插入表中?沒有主鍵或其他信息了。 – Elva

+0

如果刪除主鍵爲ID爲1的行。也刪除主鍵 – user7294900

+0

是的,的確如此。重點是如何恢復表中的一個刪除行,而不是隻插入一行......它如何實現? – Elva

相關問題