ORACLE数据库是甲骨文公司的一款关系数据库管理系统。
实现主键自动增长需要四个步骤:
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.创建触发器时:根据自己的表名,主键名,序列名更换需要更换的位置