使用单个自动增量列插入到Oracle表中

时间:2018-03-09 06:57:22

标签: sql oracle insert-into

想象一下以下(虚构的)情况:

您的表只有一列id是主键,使用典型的序列+触发器组合自动增量。

如何在那里创建新行,因为必须为insert查询指定values关键字?

根据我的理解,

INSERT INTO table () VALUES ()无效。

注意:

这不是关于这种表的意义的讨论!这纯粹是出于技术上的兴趣。

2 个答案:

答案 0 :(得分:3)

在任何当前的Oracle版本(12.1,12.2,18)中,我不会使用触发器而是使用Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create(gson)) 列 - 然后在插入期间使用identity关键字:

default

答案 1 :(得分:2)

怎么样

INSERT INTO theTable (id) VALUES (null);

并且插入之前的触发器会像:

if  :NEW.id is NULL Then  
   SELECT id_sequence.NEXTVAL INTO :NEW.id FROM dual; 
end if;