我想將新值插入到Oracle表中。該表格非常大,ID代碼以數字形式存儲。我想寫插入語句,可以添加我的新信息,並自動分配一個ID尚未採取。SQL增量ID分配
例如:
insert into example_table values
(
(select max(person_id)+1 from example_table),
99, 'example name', 'example type');
但是這上面的代碼顯然不會工作,因爲我指定一個ID(99)。如果我在上面的代碼片段中將99設置爲null,它會起作用嗎?不知道如何格式化。
謝謝。
我試圖在測試環境中刪除99運行(不替換爲null),它工作得很好。謝謝回覆。 :) – GrumP
啊,我把它的表只有3列呢?在這種情況下,在你上面的例子中,你試圖插入4.你的'select max(person_id)+1 from example_table)'基本上是爲你的觸發+序列的工作。雖然這是可以的,但它可能不是非常高效,因爲select可能會隨着表的增長而開始佔用越來越多的時間..在這種情況下使用序列+觸發器肯定是更好的選擇...很高興幫助:) – StevieG