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 ...
随机推荐
- extjs4 treepanel 多个checkbox先中 多个节点选中 多级节点展开
//<%@ page contentType="text/html; charset=utf-8" %> var checkedNodes = { _data:{}, ...
- Linux内核中工作队列的使用work_struct,delayed_work【转】
本文转载自:http://blog.csdn.net/zahuopuboss/article/details/43268983 初始化工作队列 调度工作队列 取消工作队列 #include <l ...
- SET IDENTITY_INSERT 和 DBCC CHECKIDENT
SET IDENTITY_INSERT (Transact-SQL) Allows explicit values to be inserted into the identity column of ...
- set built-in function
集合类型 集合对象是一组无序排列的可哈希的值,集合可以作为字典的键.因为集合是无序的,不可以为集合创建索引或执行切片操作,也没有键可以用来获取元素的值. 集合有两种不同的类型,可变集合和不可变集合.可 ...
- oracle 删除用户命令和部分表空间操作
删除用户 drop user user_name cascade; 建立表空间 CREATE TABLESPACE data01DATAFILE '/oracle/oradata/db/DATA01. ...
- Oracle备份与恢复:冷备份恢复
模拟数据库数据文件丢失的情况下,通过丢失之前的数据文件物理备份做恢复: 说明:数据文件丢失前一刻的所有归档日志都存在. 环境:oracle10g +rhel5 1.关闭数据库,copy system0 ...
- 修改RedHat的系统显示时间
1.修改日期 date -s 12/21/2012 2.修改时间 date -s 15:14:00 3.检查硬件(CMOS)时间 clock -r 4.将系统时间写入CMOS clock -w 切记四 ...
- javascript switch..... case
switch(条件表达式) { case 常量: { 语句a; } break; case 常量: { 语句b; } break; case 常量: { 语句c; } break; ... case ...
- 6-6 Haar特征3
B区域是包含AB这样两部分的.C区域是包含A和C这样两部分的.B区域和C区域它描述的是一个横条和一个竖条.D区域是四个方块之和. #haar 1 什么是haar? 特征 = 像素 运算 ->结果 ...
- B - Mike and Fun
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description Mike a ...