oracle利用触发器实现主键字段自增
我们都知道oracle主键自增利用的是序列sequence。我们先创建一个sequence:
create sequence test_sequence
start with 1
increment by 1
maxvalue 9999999
nocache
然后新建一张表,例如te_user表:
create table te_user(
user_id number(11) primary key,
user_name varchar2(50),
user_pwd varchar2(50)
)
如果不用trigger的话,我们插入数据是用到了sequence的nextval属性,例如:
insert into te_user values(test_sequence.nextval,'张三','')
或者
insertinto te_user(user_id,user_name,user_pwd) values(test_sequence.nextval,'李四','')
那么如果我们定义了trigger的话,就不需要每次都带入sequence来实现了,新建一个trigger来实现这一目的:
create or replace trigger test_trigger before insert
on te_user
for each row
declare
next_user_id number;
begin
select test_sequence into next_user_id from dual;
:new.user_id :=next_user_id;
end test_trigger
这样每次te_user表的insert操作都会触发此触发器,我们再进行表插入时只需要:
insert into te_user(user_id,user_pwd) values ('王五','')
就可以了。
oracle利用触发器实现主键字段自增的更多相关文章
- Oracle创建触发器实现主键自增
CREATE OR REPLACE TRIGGER "trigger_empl" before insert on extjsTest1.t_empl for each row b ...
- oracle 查询索引和主键
ORACLE: 1.查主键名称: select * from user_constraints where table_name = 'AAA' and constraint_type ='P'; 查 ...
- MYSQL的分区字段,必须包含在主键字段内
MYSQL的分区字段,必须包含在主键字段内 MYSQL的分区字段,必须包含在主键字段内 在对表进行分区时,如果分区字段没有包含在主键字段内,如表A的主键为ID,分区字段为createtime ,按 ...
- 【mysql优化】mysql count(*)、count(1)、count(主键字段)、count(非主键字段)哪个性能最佳
测试结果为:count(*)和count(1)基本相等,count(非主键字段)最耗性能 -- 数据量 708254select count(*) from tmp_test1;-- avg 0.22 ...
- cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现
cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html cassandra的索引查询和排序 cassandra的查询虽然很弱,但 ...
- MySQL 获取物理表的主键字段
参考代码: /** * 获取主键字段 * @param $table * @param $database * @return mixed */ public function get_primary ...
- powerdesigner设置主键为自增字段,设置非主键为唯一键并作为表的外键
转自:https://www.cnblogs.com/CoffeeHome/archive/2014/06/04/3767501.html 这里powerdesigner连接的数据库是以mysql为例 ...
- Oracle 获取表的主键、外键以及唯一约束条件
Oracle 获取表的主键.外键以及唯一约束条件 Select a.Owner 主键拥有者, a.table_name 主键表, b.Column_Name 主键列, b.Constraint_Nam ...
- mysql自增主键字段重排
不带外键模式的 mysql 自增主键字段重排 1.备份表结构 create table table_bak like table_name; 2.备份表数据 insert into table_bak ...
随机推荐
- 云端的ABAP Restful服务开发
愉快的暑假结束了,今天是小朋友新学期开学后的第一个周日,不知道各位家长是否和小朋友们一起,已经适应了新学期的生活了么? Jerry从少的可怜的属于自己的周末时光挤了一小部分时间出来,写了这篇文章. J ...
- javascript_13-函数是一种数据类型
函数是一种数据类型 函数是一种数据类型 function var num =60; // 1 函数是一种数据类型 function var myFun = function(){ console.lo ...
- jenkins中的流水线( pipeline)的理解(未完)
目录 一.理论概述 Jenkins流水线的发展历程 什么是Jenkins流水线 一.理论概述 pipeline是流水线的英文释义,文档中统一称为流水线 Jenkins流水线的发展历程 在Jenki ...
- c# 定义和调用索引器
- MySQL处理达到百万级数据时,如何优化?
1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. ...
- zookeeper学习(3)----基本结构和命令行操作命令
一. 数据结构 https://www.jianshu.com/p/8e322462bcca zookeeper存储结构:以树形结构的方式存储数据 ZooKeeper数据模型的结构整体上可以看作是一棵 ...
- 前端学习笔记--CSS样式--列表和表格
1.列表 2.表格 odd:奇数 even:偶数
- BZOJ2956: 模积和——整除分块
题意 求 $\sum_{i=1}^n \sum_{j=1}^m (n \ mod \ i)*(m \ mod \ j)$($i \neq j$),$n,m \leq 10^9$答案对 $1994041 ...
- 走进 thrift server
thrift的使用介绍 thriftthrift clientthrift serverthrift 0.7.0 一.About thrift 二.什么是thrift,怎么工作? 三.Thri ...
- sublime 分屏显示 不是插件
点击 view--layout --- 选择几屏即可(single / columns 2 ....) 快捷键 Alt + Shift + 1/2/3/4 分别对应1 ,2,3,4屏 如何把一个文 ...