【发布时间】:2014-02-07 16:39:12
【问题描述】:
我正在使用 oracle DB 。我正在尝试从表中选择最大数量,然后将其增加一,然后将其重新插入为新记录,例如:
insert into table1(id,name) values (select max(id) from table1 + 1,'name2');
但它给了我缺少表达式的错误。
提前致谢。
【问题讨论】:
我正在使用 oracle DB 。我正在尝试从表中选择最大数量,然后将其增加一,然后将其重新插入为新记录,例如:
insert into table1(id,name) values (select max(id) from table1 + 1,'name2');
但它给了我缺少表达式的错误。
提前致谢。
【问题讨论】:
INSERT INTO table1( id, name )
SELECT max(id) + 1, 'name2'
FROM table1
将是有效的语法。这种生成id 值的方法是一种非常糟糕的方法。它在多用户环境中不起作用,因为许多不同的会话可能获得相同的id 值。它也比使用序列效率低得多。
【讨论】:
insert into table1(id,name) values ( (select max(id) from table1 ) + 1,'name2')
【讨论】:
通过选择插入表格时,不需要关键字values
insert into table1(id,name) (select max(id) from table1 + 1,'name2');
【讨论】: