您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

ORACLE数据库实现主键自增

bubuko 2022/1/25 20:08:03 其他 字数 6854 阅读 908 来源 http://www.bubuko.com/infolist-5-1.html

ORACLE数据库是甲骨文公司的一款关系数据库管理系统。 实现主键自动增长需要四个步骤: 去看 创建表格 去看 创建自增序列 去看 创建触发器 去看 插入测试 1.创建表格(必须有主键) -- 创建学生表(student)主键为:s_id CREATE TABLE student( s_id NUM ...

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.创建触发器时:根据自己的表名,主键名,序列名更换需要更换的位置

 

 

ORACLE数据库实现主键自增

原文:https://www.cnblogs.com/kkdaj/p/12419894.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶