编程学习记录14:Oracle数据库序列,触发器

序列(SEQUENCE):按规律生成数组,如自增

创建序列:

  CREATE SEQUENCE <序列名> 

  [ INCREMENT BY  n ] -- 定义步长,即每次生成整数的间隔,默认为1,如果小于0则为递减

  [ START WITH n ] -- 初始值,默认为1

  [ MAXVALUE n ] -- 设置最大值

  [ MINVALUE n ] -- 设置最小值

  [ CYCLE | NOCYCLE ] -- 设置是否在达到最大值后进行循环

  [ CACHE n ] -- 设置缓存区大小,默认20,会提前预存 n 个数来改善性能

变量

  NEXTVAL:得到下一个值

  CURRVAL:得到当前有效值

触发器(TRIGGER):在某个条件成立时自动执行

创建触发器

  CREATE [ OR REPLACE ] TRIGGER <触发器名字> 

  <触发时机> 

  <触发事件>

  ON <表名>

  [ FOR EACH ROW ]

  BEGIN

    PL/SQL 语句

  END;

  触发时机值

    1、BEFORE:表示在操作之前触发

    2、AFTER:表示在操作之后触发

  触发事件值

    1、INSERT:进行插入操作时会执行

    2、UPDATE:进行更新操作时会执行

    3、DELETE:进行删除操作时会执行

  表名:触发器对应的表

  FOR EACH ROW :对每一行操作执行一次,如没有则此次操作只执行一次,如插入多条数据 

常用内置变量

  1、:NEW

    表示要更改的行,可以通过 :NEW. <列名> 获取对应的值,可以用来插入主键

  2、:OLD

    表示更改前的行,可以通过 :OLD.<列名> 获取对应的值,可以用来删除外键产生的依赖数据

原文地址:https://www.cnblogs.com/HMTT-RIN/p/11251186.html