1

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

4

1 回答 1

3

I had the same issue and didn't find any answer. I ended up using a trigger to automatically generate the technical key, as described in this post 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;

Then I simply ommit the id column in the initial and expected datasets:

<ticket title="Ticket 1"
        description="Description for ticket 1"
        status="NEW"
        created_date="2013-07-01 12:00:00"/>
于 2013-08-27T08:52:31.820 回答