oracle 主键生成策略-sequence序列+trigger触发器
oracle中设置表的主键字段为自增序列(实例)
1、首先创建一个表(如日志表)
//删除库表中存在的日志表
drop table S_LOG_INFO cascade constraints;
//新建日志表
create table S_LOG_INFO
(
PRIMARYKEY NUMBER not null,//主键
USERACCOUNT VARCHAR2(50),//操作用户账号
USERNAME VARCHAR2(100),//操作用户
OPERATIONTIME DATE,//操作时间
LOGTYPE VARCHAR2(100),//日志类型
SYSTEMTYPE VARCHAR2(500),//系统类型
MODUAL VARCHAR2(100),//功能模块
FUN VARCHAR2(50),//功能方法
CONTENT VARCHAR2(500),//操作说明
LOGSTATUS VARCHAR2(50),//操作结果
constraint PK_S_LOG_INFO primary key (PRIMARYKEY)
);
2、创建主键序列
/*创建自增序列*/
CREATE SEQUENCE S_LOG_INFO_PRIMARYKEY_SEQUENCE
MINVALUE 1 --最小值
NOMAXVALUE --不设置最大值
START WITH 1 --从1开始计数
INCREMENT BY 1 --每次加1
NOCYCLE --一直累加,不循环
NOCACHE; --不建缓冲区
3、创建触发器实现数据插入时触发主键自动增长
CREATE OR REPLACE TRIGGER S_LOG_INFO_TRIGGER BEFORE INSERT ON S_LOG_INFO FOR EACH ROW WHEN(NEW.PRIMARYKEY IS NULL)
BEGIN
SELECT S_LOG_INFO_PRIMARYKEY_SEQUENCE.NEXTVAL INTO:NEW.PRIMARYKEY FROM dual;
END;
4、测试,添加数据
INSERT
INTO
S_LOG_INFO
(LOGSTATUS, USERACCOUNT, LOGTYPE, SYSTEMTYPE, CONTENT, FUN, USERNAME, MODUAL)
VALUES
('成功','123','系统日志', 'XXXXXXX', '用户成功注销', 'doLogout', 'admin','系统注销')
————————————————
版权声明:本文为CSDN博主「逆之雪」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31811587/article/details/81128498
oracle 主键生成策略-sequence序列+trigger触发器的更多相关文章
- 主键生成策略sequence
http://blog.csdn.net/shanhuhau/article/details/24978253 表示:如果不写序列名,会走默认的序列 若写,则seq_表名_属性名
- OID,主键生成策略,PO VO DTO,get和load区别,脏检查,快照,java对象的三种状态
主键生成策略 sequence 数据库端 native 数据库端 uuid 程序端 自动赋值 生成的是一个32位的16进制数 实体类需把ID改成String 类型 assigned 程序端 需手 ...
- Hibernate遇到oracle之主键生成策略
一直用Hibernate+mysql,感觉Hibernate很好用,也出过什么大问题:这周,公司的产品要部署到Orecle,虽然产品号称支持Oracle但是我自己知道,这个产品压根儿就没在Oracle ...
- Hibernate(4)——主键生成策略、CRUD 基础API区别的总结 和 注解的使用
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: hibernate的主键生成策略 UUID 配置的补充:hbm2ddl.auto属性用法 注解还是配置文件 h ...
- Hibernate主键生成策略(转)
1.自动增长identity 适用于MySQL.DB2.MS SQL Server,采用数据库生成的主键,用于为long.short.int类型生成唯一标识 使用SQL Server 和 MySQL ...
- hibernate 注解 主键生成策略
一.JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue ...
- 大家一起撸代码之——Hibernate各种主键生成策略与配置详解
1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...
- Hibernate中主键生成策略
主键生成策略 increment identity sequence native uuid assigned 1) increment 由hibernate完成 主键递增, 原理:select ma ...
- Hibernate各种主键生成策略与配置详解
出自:http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前 ...
随机推荐
- Dynamics CRM 客户端程序开发:自定义系统标准按钮的可用性
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复125或者20140414可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 一般是新建一个解决方案用于客制化 ...
- linux环境下安装selenium+chrom+chromdriver.exe
原文:https://blog.csdn.net/yoyocat915/article/details/80580066 原文:https://blog.csdn.net/hanxue6898/art ...
- Asp.Net Core 开发之旅之.net core 连接数据库
数据库连接字符串放入配置文件中 打开appsettings.json 添加ConnectionStrings 例子如下: { "Logging": { "IncludeS ...
- golang中的接口
CSDN找的一个网页,照着抄练一次. 差不多的使用场景都在了. package main import ( "fmt" ) type People interface { Retu ...
- PHP注释标记整理
什么是注释标记 我们在平常写代码或看别人写的代码时, 在方法的说明注释中经常会有这样的注释: /** * @param $num * @return array */ 上面的@param @retur ...
- 【bzoj2648】SJY摆棋子(kdtree)
传送门 题意: 二维平面上有若干个点. 现在要维护一种数据结构,支持插入一个点以及询问其余点到某个点的最小曼哈顿距离. 思路: 这是个\(kdtree\)模板题. \(kdtree\)是一种可以高效处 ...
- c# WF 第9节 button控件
本节内容: 1:实现实例 1:实现实例 每当点击一个确定就出现一个窗口,当点击最后的确定时,关闭所有的窗口. 实现: 步骤1:对Form 1 -Form3 依次进行如下设置: 步骤2 : 当每点击一个 ...
- Re-androideasy
题目地址 https://dn.jarvisoj.com/challengefiles/androideasy.apk.17e528e9498d4ae25dc82ad43730a03d 先看看功能 然 ...
- 事件代理/事件委托----点击li弹出对应的下标和内容
<body> <ul> <li>这是第一行</li> <li>这是第二行</li> <li>这是第三行</li ...
- Unity S老师系列课程学习
AssetBundle(创建打包)入门学习(基于Unity2017) (已看) 分组策略 逻辑实体分组 按照类型分组 按照使用分组 分组策略----总结 把经常更新的资源放在一个单独的包里面,跟不经常 ...