【问题标题】:How to use Oracle Sequence Numbers in DBUnit?如何在 DBUnit 中使用 Oracle 序列号?
【发布时间】:2013-05-22 17:09:03
【问题描述】:

在使用 DBUnit 将数据导出到 Oracle 时,如何使用 Oracle 序列为我的表自动生成主键?

【问题讨论】:

  • 看看this。这似乎是一个潜在的解决方案,虽然不是开箱即用的。

标签: dbunit


【解决方案1】:

我遇到了同样的问题,但没有找到任何答案。我最终使用了一个触发器来自动生成技术密钥,如这篇文章中所述create table with sequence.nextval in oracle

CREATE OR REPLACE TRIGGER ticketSequenceTrigger
BEFORE INSERT
ON TICKET
FOR EACH ROW
WHEN (new.id IS null)
  DECLARE
    v_id TICKET.id%TYPE;
  BEGIN
    SELECT TICKET_ID_SEQ.nextval INTO v_id FROM DUAL;
    :new.id := v_id;
  END ticketSequenceTrigger;

然后我只是在初始和预期数据集中省略了 id 列:

<ticket title="Ticket 1"
        description="Description for ticket 1"
        status="NEW"
        created_date="2013-07-01 12:00:00"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多