首页 > 其他 > 详细

1.索引、事务

时间:2020-07-29 19:49:17      阅读:72      评论:0      收藏:0      [点我收藏+]

索引分类:B树索引、位索引

 

 

1.创建标准索引

   create index index_name 

   on  table_name(column1…);

 

2,创建唯一索引

   create unique index  index_name 

   on table_name(column1…);

 

3,.创建位索引

   create bitmap index index_name

   on  table_name(column1…);

 

事务:

原子性、一致性、隔离性、永久性

设置自动提交:set autocommit on/off

 

触发器

 create [or replace] trigger  trigger_name

after / before / instead of     after触发器的工作原理:先保存数据库数据的更新,再激活触发器

                                            before触发器的工作原理:先激活触发器,再保存更新数据库数据

[ insert]  [ [or] update [of column_list] ]  [ [or] delete]

on table_or_view_name

[referencing {old [as] old / new [as] new} ]

[for each row]  行级触发器,如果没有该行就是表级触发器

[when  condition]

pl/sql_block;

   :new   代表用户即将插入数据库中的某行记录

   :old   代表即将删除的该行数据记录

 

触发器中不能使用 :rollback、commit、create、 dorp、 alter、 savepoint等内容

 

例1:当用户插入或更新 成绩表中的记录时候,就输出一个提示“触发器响应了”

create  or replace trigger  trigger1

before insert or update on 成绩表

begin

        dbms_output.put_line(‘触发器响应了‘);

end;

例2:当向学生表中插入数据时,需要控制学生学号不可以为负数

  create  or replace trigger trigger2

        before  insert on student  

  for each row

  begin 

    if  :now.sno <0   then 

      raise_application_error(-2001,‘学号错误,不能插入表中‘);

    end if;

      end;

 例3:当向学生表 中插入 数据时,需要控制学生学号 不能为负数,如果为负数,则将负数改为绝对值的正数插入

       create or replace trigger trigger3

  before insert on student 

  for each row

  begin 

    if  :now.no<0  then 

      :now.sno  :=   -:now.sno;

    end if;

  end;

 

 

instead  of触发器:修改视图中,非键值表中的列

例4:学生表(sno,sname,sage)

         住址表(sno,zname)

        视图(sno,sname,zname)更新视图 将学生名为kite的住址换成安徽

  create or replace trigger trigger4

  instead of  update  on view_stu_add  

  for each row

  declare 

         aa  number :=0;

   begin

   select  sno  into  aa      where sname = :old.sname;

      delete  address    where   sno   =  aa;

          insert  into  address  values(aa,:new.zz);

end;

    

 

1.索引、事务

原文:https://www.cnblogs.com/sun1997/p/13398626.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!