Sam*_*nna 4 sql oracle oracle10g
我正在使用oracle DB.我试图从表中选择最大数字,然后将其递增1然后重新插入它作为新记录,例如:
insert into table1(id,name) values (select max(id) from table1 + 1,'name2');
但它让我失去了表达错误.
提前致谢.
Jus*_*ave 14
INSERT INTO table1( id, name )
SELECT max(id) + 1, 'name2'
FROM table1
Run Code Online (Sandbox Code Playgroud)
将是有效的语法.这种产生id价值的方法是一种非常差的方法.它在多用户环境中不起作用,因为许多不同的会话可能获得相同的id值.它也比使用序列效率低得多.
insert into table1(id,name) values ( (select max(id) from table1 ) + 1,'name2')
Run Code Online (Sandbox Code Playgroud)
通过选择插入表时,不需要关键字values
insert into table1(id,name) (select max(id) from table1 + 1,'name2');
Run Code Online (Sandbox Code Playgroud)