ORACLE数据库实现主键自增

ORACLE数据库是甲骨文公司的一款关系数据库管理系统

实现主键自动增长需要四个步骤:

  1. 去看 创建表格
  2. 去看 创建自增序列
  3. 去看 创建触发器
  4. 去看 插入测试

 

1.创建表格(必须有主键)

-- 创建学生表(student)主键为:s_id 
CREATE TABLE student(
s_id NUMBER(10) NOT NULL PRIMARY KEY ,-- 主键列 s_id
s_name VARCHAR2(50),         -- 学生姓名 s_name
s_age NUMBER(8)              -- 学生年龄 s_age
);

2.创建自增序列

-- 创建自增序列(seq_student) 
CREATE SEQUENCE seq_student
             INCREMENT BY 1 --每次增加1,可以写非0的任何整数
             START WITH 1 -- 从1开始(起始值)
             MAXVALUE  999   -- 设置最大值:设置为 NOMAXVALUE 表示无最大值
             MINVALUE 1   -- 设置最小值
             NOCYCLE      -- 不循环一直增加
             CACHE 20; -- 设置20个缓存,不使用缓存则写 NOCACHE

 到这一步就可以使用了,不过使用的时候必须按格式调用

格式:自增序列的名字.nextval (我这里的序列名为 seq_student )

insert into student values (seq_student.nextval,'李四',28); 

 

3.创建触发器(插入数据时触发)

create trigger tri_student_ins   --每个触发器名不可一样
       before insert on student for each row  when (new.s_id is null) --student:换为自己的表名;s_id 换为自己的主键名
    begin 
      select seq_student.nextval into:new.s_id from dual;  -- seq_student:换为上一步创建的自增序列名;s_id 换为主键名
    end;

 

4.插入数据测试

insert into student values (DEFAULT,'测试',28);

 


注意点:

1.创建表格时:必须有主键!

2.创建自增序列时:序列名不要太复杂,id自增根据功能灵活变通!

3.创建触发器时:根据自己的表名,主键名,序列名更换需要更换的位置

 

 

posted @ 2020-03-05 13:57  酷酷的洛克  阅读(1806)  评论(1编辑  收藏  举报