创建一个表
-- 创建老师表(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,'张三','数学');
本文介绍了如何在数据库中创建教师表,设置了主键并附带姓名和科目字段。同时,创建了一个自增序列teacher_id,用于在插入记录时自动填充主键。文章还详细阐述了如何利用序列创建触发器确保数据一致性,并演示了如何通过序列和触发器进行插入操作。
3万+

被折叠的 条评论
为什么被折叠?



