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 ...
随机推荐
- NBUT 1222 English Game(trie树+DP)
[1222] English Game 时间限制: 1000 ms 内存限制: 131072 K 问题描写叙述 This English game is a simple English words ...
- gnss到底是什么呢
GNSS Global Navigation Satellite System 全球卫星导航系统:提到这个很多人会不明白GNSS倒是是个啥东西呢,和北斗,GPS, GLONASS,Galileo系统有 ...
- POJ1077 Eight —— 经典的搜索问题
题目链接:http://poj.org/problem?id=1077 Eight Time Limit: 1000MS Memory Limit: 65536K Total Submission ...
- JavaScript SHA-1
1. [文件] webtoolkit.sha1.js ~ 4KB /**** Secure Hash Algorithm (SHA1)* http://www.huiyi8.com/css ...
- MD5Util1
package com.cc.hkjc.util; import java.math.BigInteger;import java.security.MessageDigest;import java ...
- opencv直方图该怎么画
图像直方图是反映图像中像素分布特性的统计表,一般显示如下: 其中横坐标代表的是图像像素的种类,或者说是灰度级,纵坐标代表的是每一级灰度下像素数或者该灰度级下像素数在所有图像总像素数总所占的百分比. 直 ...
- 理解Objective-C Runtime(四)Method Swizzling
Objective-C对象收到消息之后,究竟会调用何种方法需要在运行期间才能解析出来.那你也许会问:与给定的选择子名称相应的方法是不是也可以在runtime改变呢?没错,就是这样.若能善用此特性,则可 ...
- 【POJ 2406】 Power Strings
[题目链接] 点击打开链接 [算法] KMP 如果字符串中存在循环节,则next[len] = (循环节个数 - 1) * 循环节长度 循环节个数 = len / (len - next[len]) ...
- 后缀自动机SAM BZOJ 2806
终于遇到了一道后缀数组不能过 一定要学SAM的题... (看了半个下午+半个上午) 现在总结一下(是给我自己总结..所以只总结了我觉得重要的 .. 看不太懂的话可以To http://blog.c ...
- bzoj2878 [Noi2012]迷失游乐园——概率期望DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2878 这个博客写得很好:https://www.cnblogs.com/qt666/p/72 ...