服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Oracle - Oracle 触发器实现主键自增效果

Oracle 触发器实现主键自增效果

2022-01-19 18:02小沐哥* Oracle

这篇文章主要介绍了Oracle 触发器实现主键自增,说白了就是数据确认(after)与安全性检查(before),此外触发器不针对select操作,本文给大家介绍的非常详细,需要的朋友参考下吧

触发器的作用

  触发器的作用类似拦截器.把一些针对数据库的DML操作(insert/update/delete/select)进行拦截,符合业务要求的进行操作,不符合要求的操作可以通过抛出异常来阻止

  说白了就是数据确认(after)与安全性检查(before),此外触发器不针对select操作

1.首先创建表testUser

        Oracle设置为不区分大小的,所以table名,言简意赅即可。

?
1
CREATE TABLE testUser ( id NUMBER ( 11 ) primary key, name VARCHAR ( 50 ) );

2.创建sequence,最小值为1,最大值为99999999,初始为1,步长1

        sequence名的话针对某张表习惯命名为:seq_表名

?
1
CREATE sequence seq_testUser minvalue 1 maxvalue 99999999 START WITH 1 INCREMENT BY 1 nocache ORDER;

3.创建触发器

        触发器是基于sequence 所以习惯命名为:trg_sequence名

?
1
2
3
4
5
6
7
8
9
CREATE
    OR REPLACE TRIGGER trg_seq_testUser BEFORE INSERT ON testUser FOR EACH ROW
BEGIN
    SELECT
        seq_testUser.nextval INTO : new.id
    FROM
        dual;
    
END;

4.插入一条数据

?
1
2
3
insert into testUser(username) values('强哥0');
insert into testUser(username) values('强哥1');
insert into testUser(username) values('强哥2');

5查询结果

?
1
select * from testUser

到此这篇关于Oracle 触发器实现主键自增的文章就介绍到这了,更多相关Oracle 触发器主键自增内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/menmu66/article/details/121978087

延伸 · 阅读

精彩推荐