序列(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.<列名> 获取对应的值,可以用来删除外键产生的依赖数据