>我试图在oracle数据库中进行批量插入。查询为:
INSERT INTO <table-name> (A, B) values ((SELECT MAX(A)+ 1 FROM <>table-name), "xyz")
批处理插入中有两个类似的语句。上面的操作抛出了重复异常。
你实际上应该使用序列或计算(生成)列来计算 A - 尽管 Oracle 历来使这比它应该的更困难。
但是,如果您的问题是 A
,那么问题可能是A
总是NULL
。 㞖:
INSERT INTO <table-name> (A, B)
SELECT COALESCE(MAX(A), 0) + 1, 'xyz'
FROM <table-name>;
您可能还对B
或未包含在insert
中的其他列具有唯一的索引/约束。 而且,为了完整起见,我应该提到错误可能来自表上的插入触发器。