在 Oracle 中插入数据时,可以使用序列来自动生成主键。但如果不想使用序列,可以通过在插入语句中使用子查询来实现自动取最大值加1。
具体实现方法如下:
INSERT INTO table_name (id, column1, column2, ...)
VALUES (
(SELECT NVL(MAX(id), 0) + 1 FROM table_name),
value1, value2, ...
);
这样,就可以在插入数据时自动取出表中已有数据的最大值加1作为新数据的主键。
注意:NVL 函数是用来判断第一个参数是否为空,如果为空,则返回第二个参数。