创建一个表
-- 创建老师表(teacher)主键为:id
CREATE TABLE teacher(
id NUMBER(10) NOT NULL PRIMARY KEY , -- 主键列 id
name VARCHAR2(50), -- 姓名 name
subject VARCHAR2(50) -- 科目 subject
);
创建一个自增序列
-- 创建自增序列(teacher_id)
CREATE SEQUENCE teacher_id
INCREMENT BY 1 --每次增加1,可以写非0的任何整数
START WITH 1 -- 从1开始(起始值)
MAXVALUE 999 -- 设置最大值:设置为 NOMAXVALUE 表示无最大值
MINVALUE 1 -- 设置最小值
NOCYCLE -- 不循环一直增加
CACHE 20; -- 设置20个缓存,不使用缓存则写 NOCACHE
);
使用
格式:自增序列的名字.nextval
insert into teacher values(teacher_id.nextval,'张三','数学');
补充
可以创建一个触发器,在插入数据时使用
create trigger tri_teacger_id
before insert on teacher for each row when (new.id is null) --teacher:换为自己的表名;id 换为自己的主键名
begin
select teacher_id.nextval into:new.id from dual; -- teacher_id:换为上一步创建的自增序列名;id 换为主键名
end;
使用
insert into teacher values(default,'张三','数学');