2014-02-07 62 views
2

我正在使用oracle數據庫。我試圖從表中選擇最大數字,然後將其增加一個,然後重新插入它作爲新記錄,例如: insert into table1(id,name) values (select max(id) from table1 + 1,'name2');插入最大選定值作爲新記錄oracle

但它給了我缺少的表達式錯誤。

在此先感謝。

回答

0

雖然通過選擇插入表中,沒有必要關鍵字values

insert into table1(id,name) (select max(id) from table1 + 1,'name2'); 
10
INSERT INTO table1(id, name) 
    SELECT max(id) + 1, 'name2' 
    FROM table1 

將是有效的語法。這種產生id值的方法是非常差的方法。它在多用戶環境中不起作用,因爲許多不同的會話可能會得到相同的id值。它比使用序列效率低得多。

+0

*許多不同的會話可能會得到相同的id * +1。非常重要的一點。 – Leigh

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