Oracle:不带列规范的插入

Zar*_*rdo 7 oracle triggers insert sequence auto-increment

我有一个带有序列的oracle表和一个自动增加列的触发器.现在我想做一个插入.通常我应该写:

INSERT INTO table (column1, column2,...) VALUES (value1, value2)
Run Code Online (Sandbox Code Playgroud)

但我只是想插入一个没有默认值的记录.如何在Oracle中执行此操作?

`Mysql`: INSERT INTO table () VALUES ()

`Mssql`: INSERT INTO table default VALUES 

`Oracle:` INSERT INTO table (column1, column2,...) VALUES (default, default,...)
Run Code Online (Sandbox Code Playgroud)

这是唯一的方法吗?我要列出所有列?

Ton*_*ews 7

INSERT INTO table (column1) VALUES (default);
Run Code Online (Sandbox Code Playgroud)

其余的将是默认的!


Oll*_*lie 5

在Oracle中,您不必指定列,但如果不这样做,将使您在表定义更改时易于引入错误。

您可以插入:

插入t值(value1,value2,value3);

假设表t具有三列

插入以下内容会更好,更受支持:

INSERT INTO t(第1列,第2列,第3列)值(值1,值2,值3);

在介绍从PL / SQL到SQL的上下文切换,然后再回到PL / SQL的上下文切换时,我不会使用PL / SQL(如果可以帮助的话)。