将最大选定值作为新记录oracle插入

时间:2014-02-07 16:39:12

标签: sql oracle oracle10g

我正在使用oracle DB。我试图从表中选择最大数字,然后将其递增1然后重新插入它作为新记录,例如:               insert into table1(id,name) values (select max(id) from table1 + 1,'name2');

但是它让我失去了表达错误。

提前感谢。

3 个答案:

答案 0 :(得分:13)

INSERT INTO table1( id, name )
  SELECT max(id) + 1, 'name2'
    FROM table1

将是有效的语法。这种生成id值的方法是一种非常糟糕的方法。它在多用户环境中不起作用,因为许多不同的会话可能获得相同的id值。它也比使用序列效率低得多。

答案 1 :(得分:3)

insert into table1(id,name) values ( (select max(id) from table1 ) + 1,'name2')

答案 2 :(得分:0)

通过选择插入表格时,不需要关键字values

insert into table1(id,name) (select max(id) from table1 + 1,'name2');