更新查询中无自动增量列的最大值 - Oracle

max value of no autonincrement column in update query - Oracle

在MySQL中我可以这样实现():

INSERT INTO mytable (mykeycolumn,col1,col2) VALUES
 ((SELECT MAX(mykeycolumn) FROM mytable AS foo)+1,'val1','val2');

但是,在 Oracle 中,我得到一个 ORA-00907: missing right parenthesis

我能做什么?

INSERT INTO mytable (mykeycolumn,col1,col2) VALUES
 ((SELECT MAX(mykeycolumn)+1 FROM mytable),'val1','val2');

即将 +1 移动到子 select.

为什么要使用 VALUES?

INSERT INTO mytable (mykeycolumn,col1,col2)
 SELECT MAX(mykeycolumn)+1,'val1','val2' FROM mytable