【问题标题】:Simulate trigger with dbUnit使用 dbUnit 模拟触发器
【发布时间】:2011-09-05 16:02:48
【问题描述】:

我正在使用 dbUnit 将测试数据放入数据库中,数据集如下

     <dataset>
        <TABLE_1 PRIMARY_KEY_COL="10000001" OTHER_COL="Some Text"/>
     </dataset>

我的问题是 db 中有一个插入触发器将子记录填充到 TABLE_2 中。所以当我尝试

   DatabaseOperation.DELETE.execute();

在 tearDown() 失败并出现 java.sql.SQLException: ORA-02292: 违反完整性约束 (TABLE_2_TABLE_1_FK) - 找到子记录。

有没有什么方法可以模拟 TABLE_1 的 on-delete 触发器,用 dbUnit 删除子记录并且不将触发器添加到 DB 中?

【问题讨论】:

    标签: java oracle testing dbunit


    【解决方案1】:

    我们的数据库中没有触发器,但我们使用 dbunit,这可能对您有用:

    您可以为 DELETE 操作使用不同的数据集,其中包括触发器将数据插入到的表。顺序很重要,因此 dbunit 可以对首先引用 TABLE_1 的表执行删除或插入操作...

    <dataset>
        <TABLE_WITH_TRIGGERED_DATA_HERE...>
        <TABLE_1 PRIMARY_KEY_COL="10000001" OTHER_COL="Some Text"/>
     </dataset>
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      猜你喜欢
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2011-04-17
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多