oracle 触发器,序列,索引
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 触发器,序列,索引的更多相关文章
- MySQL实现类似Oracle的序列
MySQL实现类似Oracle的序列 2013-10-22 10:33:35 我来说两句 作者:走过的足迹 收藏 我要投稿 MySQL实现类似Oracle的序列 Oracl ...
- Mybatis 插入操作时获取主键 (Oracle 触发器与SEQ)
1.通过Oracle序列 -- Create sequence create sequence SEQ_DW_EWSYSTEM minvalue 1 maxvalue 9999999999999999 ...
- SQL server与Oracle触发器的创建与使用
SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE T ...
- oracle导出序列的几种办法
oracle导出序列的几种办法 注:本文来源于<oracle导出序列的几种办法> 方法一: select 'create sequence ' ||sequence_name|| ' mi ...
- Oracle触发器用法实例详解
转自:https://www.jb51.net/article/80804.htm. 本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件 ...
- ORACLE表、索引和分区详解
ORACLE表.索引和分区 一.数据库表 每种类型的表都有不同的特性,分别应用与不同的领域 堆组织表 聚簇表(共三种) 索引组织表 嵌套表 临时表 外部表和对象表 1.行迁移 建表过程中可以指定以下两 ...
- [转载]Oracle触发器用法实例详解
本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行. 因此触发器不需要人为的去调用,也 ...
- 2014/11/06 Oracle触发器初步 2014-11-06 09:03 49人阅读 评论(0) 收藏
触发器我就不多解释了,保证数据的完整性的神器,嗯..也是减少程序员工作托管给数据库操作的好帮手.就不讲一些大道理了.通俗点,我们对数据库的操作,无非就是增 删 改 查. 触发器就是在删,改,增的时候( ...
- oracle触发器加条件判断
oracle触发器加条件判断,如果某个字段,isnode=0,那么不执行下面的方法,数据如下: create or replace trigger tr_basestation_insert_emp ...
随机推荐
- code[VS] 1297 硬币
题目描写叙述 Description 我们知道即使是同一种面值的硬币,它们的重量也有可能不一样,由于它受到很多因素的影响,包含制造工艺和流程上的.可是不论什么一种面值的硬币的重量总是处于某个特定范围之 ...
- luogu2704 炮兵阵地 状态压缩DP
题目大意:一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),在每一格平原地形上最多可以布置一支炮兵部队,能攻击到的区域:沿横向左右各两格,沿纵向上 ...
- phpexcel导出后乱码或者是打不开文件必须修复的问题
百度了一下找到了解决办法,只要在header前面加上ob_end_clean();这句代码,清除缓冲区,这样就可以了,完美的解决了我的问题
- swing _JFileChooser文件选择窗口
import javax.swing.JFileChooser; import org.eclipse.swt.internal.win32.TCHITTESTINFO; public class t ...
- CollapsingToolbarLayout 收缩显示tilte
final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id. ...
- skynet源码阅读<3>--网关分析
继上一篇介绍了skynet的网络部分之后,这一篇以网关gate.lua为例,简单分析下其串接和处理流程. 在官方给出的范例中,是以examples/main.lua作为启动脚本的,在此过程中会创建wa ...
- Linux 系统开机启动项清理
一般情况下,常规用途的 Linux 发行版在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务,例如蓝牙bluetooth.Avahi. 调制解调管理器ModemManager.ppp-dn ...
- Linear Regression_最小二乘(LMS)
%% Machine Learining----Linear Regression close all clear %%data load Year = linspace(,,); Price = [ ...
- Logback中%X的使用
1. 参考资料 https://gist.github.com/logogin/ff44c254f655340b653c http://www.cnblogs.com/zhudongchang/p/6 ...
- Gym 100299C && UVaLive 6582 Magical GCD (暴力+数论)
题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点 ...