-1

我试图在 oracle DB 中进行批量插入。查询是:

INSERT INTO <table-name> (A, B) values ((SELECT MAX(A)+ 1 FROM <>table-name), "xyz")

批量插入中有两个类似的语句。上述操作引发了 DuplicateException。

4

1 回答 1

1

您确实应该使用序列或计算(生成)列来计算 A ——尽管 Oracle 历来使这比它应该做的更困难。

但是,如果您的问题是A,那么问题可能A总是NULL。如果是这样:

INSERT INTO <table-name> (A, B) 
     SELECT COALESCE(MAX(A), 0) + 1, 'xyz'
     FROM <table-name>;

您可能Binsert. 而且,为了完整起见,我应该提到错误可能来自表上的插入触发器。

于 2017-01-29T15:34:03.743 回答