oracle中为什么不能直接把一个序列设置为默认值?

create table jjj
(
ssd int default lol_seq.nextval primary key
);

就想上面的代码 ,为什么不行啊???

Oracle
不直接支持 自动递增的列。
需要创建一个序列 SEQUENCE。
又由于无法在列的默认值那里,设置默认值为序列。因此只能通过触发器来设置。
设置好触发器以后,所有的插入语句,将忽略外部传入的 id 数据,只使用指定的序列号来产生。

CREATE SEQUENCE test_sequence2
increment by 1 -- 每次递增1
start with 1 -- 从1开始
nomaxvalue -- 没有最大值
minvalue 1 -- 最小值=1
NOCYCLE; -- 不循环

create table jjj
(
ssd int default test_sequence2.NEXTVAL primary key
);