oracle 触发器,序列,索引

 
--1,触发器 ----trigger
/*触发器是一种特殊的存储过程,它与数据表紧密联系,用于保护表中的数据,
当一个定义了特定类型触发器的基表执行插入、修改或删除表中数据的操作时,
将自动触发触发器中定义的操作,以实现数据的一致性和完整性。
触发事件: insert,delete,update
触发时间: before, after , 替换:instead of
触发变量: :old ,:new
针对每一行:for each row
*/ ----before insert on stemp --
create or replace trigger tri_insert_stemp
before insert on stemp
begin
dbms_output.put_line('在对表stemp执行insert事件前 执行触发器');
end; ----before delete on
create or replace trigger tri_delete_stemp
before delete on stemp
for each row
begin
----触发变量的使用 ---------- ---------- :old.id
dbms_output.put_line('删除了数据 id='||:old.id||', sname='||:old.sname);
end; ----案例1:(1)创建一个表
create table stempLog(
uname varchar2(30),
ddate date
);
----(2)创建一个触发器
create or replace trigger tri_insert_log
after delete on stemp
for each row
begin
insert into stemplog values(user,sysdate);
end;
/ ----案例2:产品----产品类别 create table ptype(
pid number(8),
pname varchar2(30)
);
insert into ptype values(1,'水果');
insert into ptype values(2,'蔬菜'); create table goods(
gid number(8),
gname varchar2(30),
pid number(8)
);
insert into goods values(1,'芒果',1);
insert into goods values(2,'苹果',1);
insert into goods values(3,'香蕉',1);
insert into goods values(4,'萝卜',2);
insert into goods values(5,'青菜',2);
insert into goods values(6,'菠菜',2); --创建视图,将两张表的数据结合,如果重复就不显示。使用内连接,主键=外键
create view v_goods as
select goods.*,ptype.pname from goods inner join ptype on goods.pid=ptype.pid; ----创建一个 ‘替换’ 触发器
create or replace trigger tri_updateGoods
instead of update on v_goods --对视图进行操作前替换数据
for each row
begin
--修改名字,保留旧的主键
update goods set gname=:new.gname where gid=:old.gid;
update ptype set pname=:new.pname where pid=:old.pid;
end; ----可修改视图数据
update v_goods set gname='芹菜' , pname='有机蔬菜' where gid=5; --2,序列:sequence ----------oracle 的计数器,安规则计数
create table product(
pid number primary key,
pname varchar2(30)
); -----建立序列-------------------------------------------
create sequence PRODUCT_SEQ --序列名
minvalue 1 --最小值
maxvalue 9999999999999999999999999999--最大值
start with 1 --开始的数据
increment by 1 --每次增加1
cache 20; --缓冲大小20M --3,primary key=index +unique
---索引 index 主要的作用是提高查询效率
/*
索引的优点: 提高查询效率
索引的缺点: 降低了数据更新的效率,增加了存储空间
常用查询的栏目才建立索引,并不是所有的位置建立索引都好,而且索引不要超过4个
使用规则: 数据量大,常用的查询栏目上建立索引
*/
create index indexname on tablename(cloumn);
create index index_score on student(score); --在学生的表的分数栏上建立一个叫做index_score的索引

oracle 触发器,序列,索引的更多相关文章

  1. MySQL实现类似Oracle的序列

    MySQL实现类似Oracle的序列 2013-10-22 10:33:35     我来说两句      作者:走过的足迹 收藏    我要投稿 MySQL实现类似Oracle的序列   Oracl ...

  2. Mybatis 插入操作时获取主键 (Oracle 触发器与SEQ)

    1.通过Oracle序列 -- Create sequence create sequence SEQ_DW_EWSYSTEM minvalue 1 maxvalue 9999999999999999 ...

  3. SQL server与Oracle触发器的创建与使用

    SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE T ...

  4. oracle导出序列的几种办法

    oracle导出序列的几种办法 注:本文来源于<oracle导出序列的几种办法> 方法一: select 'create sequence ' ||sequence_name|| ' mi ...

  5. Oracle触发器用法实例详解

    转自:https://www.jb51.net/article/80804.htm. 本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件 ...

  6. ORACLE表、索引和分区详解

    ORACLE表.索引和分区 一.数据库表 每种类型的表都有不同的特性,分别应用与不同的领域 堆组织表 聚簇表(共三种) 索引组织表 嵌套表 临时表 外部表和对象表 1.行迁移 建表过程中可以指定以下两 ...

  7. [转载]Oracle触发器用法实例详解

    本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行. 因此触发器不需要人为的去调用,也 ...

  8. 2014/11/06 Oracle触发器初步 2014-11-06 09:03 49人阅读 评论(0) 收藏

    触发器我就不多解释了,保证数据的完整性的神器,嗯..也是减少程序员工作托管给数据库操作的好帮手.就不讲一些大道理了.通俗点,我们对数据库的操作,无非就是增 删 改 查. 触发器就是在删,改,增的时候( ...

  9. oracle触发器加条件判断

    oracle触发器加条件判断,如果某个字段,isnode=0,那么不执行下面的方法,数据如下: create or replace trigger tr_basestation_insert_emp ...

随机推荐

  1. oracle中去掉文本中的换行符、回车符、制表符

    一.特殊符号ascii定义 制表符 chr(9)  换行符 chr(10) 回车符 chr(13) UPDATE tc_car_order set USE_REASON =  REPLACE('USE ...

  2. mysql----其他小技巧

    小技巧: min/max优化 在表中,一般都是经过优化的. 如下地区表 id area pid 1 中国 0 2 北京 1 ... 3115 3113 我们查min(id), id是主键,查Min(i ...

  3. 一个简单的servlet

    1.创建一个自己的servlet文件,继承HttpServlet MyServlet.java package com.jmu.ccjoin.controller; import java.io.IO ...

  4. 织梦dedecms首页/列表页/内容页调用tag的方法(未测试)

    织梦dedecms首页/列表页/内容页调用tag的方法 在网站中tag是网站搜索相关文章的联系之一,也可以有专门的tag页面,在不同的页面也可以调用tag,而不是只有在首页和列表页才可以调用tag,这 ...

  5. Spring3 Schedule Task之注解实现 (两次起动Schedule Task 的解决方案)

    Spring3 Schedule Task之注解实现 (两次起步Schedule Task 的解决方案)Spring3 Schedule Task之注解实现 (两次启动Schedule Task 的解 ...

  6. position属性中的绝对定位和相对定位

    absolute(绝对定位):1.如果没有父级DIV,则会根据浏览器原始点去定位,而且跟他相邻的DIV会忽略它,定位后则可用TRBL(top,right,bottom,left)去布局.注意:TRBL ...

  7. 实现自定义xib和storyboard的加载,

    一:加载xib 1.分别创建xib,.h  .m文件继承自UIView. 在xib上绑定类名. 或者创建文件的时候直接勾选xib 2.在控制器中调用类方法 jyq52787网盘/ios/潭州学院/iO ...

  8. 【总结——HTTP协议】

    一.HTTP协议简介 什么是HTTP?全称是HyperText Transfer Protocal,即:超文本传输协议,从1990年开始就在WWW上广泛应用,是现今在WWW上应用最多的协议,目前版本是 ...

  9. 聊聊Web App、Hybrid App与Native App的设计差异(转)

    目前主流应用程序大体分为三类:Web App.Hybrid App. Native App. 一.Web App.Hybrid App.Native App 纵向对比 首先,我们来看看什么是 Web ...

  10. ios::sync_with_stdio(false);

    取消cin与stdin的同步,加快输入速度