使用before触发器,赋值采用 :new.需赋值字段 := 值
SQL code
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 Connected as scott SQL> desc aa Name Type Nullable Default Comments ---- ------------ -------- ------- --------
ID1 NUMBER(10) Y
X VARCHAR2(10) Y
M VARCHAR2(10) Y
SQL>
SQL> create or replace trigger tri_aa
2 before update of x on aa
3 for each row
4 declare
5 begin
6 :new.m:=:new.x;
7 end;
8 / Trigger created
SQL> select * from aa where x='a'; ID1 X M ----------- ---------- ----------
1 a ттт 1 a test
SQL> update aa set x=x where x='a';
2 rows updated
SQL> select * from aa where x='a'; ID1 X M ----------- ---------- ---------- 1 a a 1 a a SQL>
分享到:
相关推荐
如果需通过触发器设定插入行中的某列值,则为了访问“新(new)”值,需使用一个触发器 before insert,使用 after insert 则不行。 4. Instead of 触发器命令 使用它告诉 oracle 应执行什么操作。 以上四种大类...
为了实现表中某列的自增功能,可以创建一个序列和相应的触发器。 ```sql CREATE TABLE tab_user ( id NUMBER(11) PRIMARY KEY, username VARCHAR(50), password VARCHAR(50) ); CREATE SEQUENCE my_seq ...
11. **unique**:在数据库设计中,“unique”约束确保表中某一列或多列的值唯一。 12. **reverse**:虽然“reverse”在数据库领域并不常见,但在SQL中可以通过ORDER BY DESC实现类似功能,即反向排序。 13. **...
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
2. **Recursive SQL**:递归SQL是指在执行DDL或DML语句时,Oracle数据库内部自动触发的SQL语句。这些额外的SQL语句主要用于维护数据字典的更新,确保数据库元数据的一致性和完整性。例如,创建表时,Oracle会自动...
- **唯一约束(unique):** 保证某一列或多列值的唯一性。 - **检查约束(check):** 限制列中的值范围。 - **非空约束(not null):** 确保列不能为空。 #### 三、SQL基础 **DLL语言操作:** - **数据定义语言**...
- **NOT NULL**:指定某列不能有空值。 - **UNIQUE**:指定某列的值必须唯一。 - **PRIMARY KEY**:主键约束,不仅要求唯一,还要求非空。 - **FOREIGN KEY**:外键约束,用于建立表之间的关联关系。 - **CHECK...
### 精通Oracle核心技术和项目实战之触发器 #### 1. 触发器概述 触发器作为Oracle数据库的一项关键技术,为实现复杂的数据完整性和安全性提供了强有力的工具。本章节将深入探讨触发器的基本概念、分类及其应用场景...
文本参数文件的修改是通过直接对文本的修改实现的,通过命令行是无法将修改后的参数值写入该文件中,而服务器初始化参数文件是不能直接修改的,必须通过ALTER SYSTEM语句来进行参数修改的。 7. 简述PL/SQL程序结构及...
2、 定义一个为修改职工表(emp)中某职工工资的存储过程子程序,职工名作为形参,若该职工名在职工表中查找不到,就在屏幕上提示“查无此人”然后结束子程序的执行;否则若工种为MANAGER的,则工资加$1000;工种为...
1. **空值处理**:当在表的某列上设置唯一约束时,默认情况下允许该列存在一个或多个空值(NULL)。这意味着即使设置了唯一约束,仍然可以在该列插入多个NULL值而不会触发唯一性冲突。如果需要确保唯一约束下不允许...
在Oracle中,序列对象提供了两个伪列:CURRVAL和NEXTVAL。其中,**CURRVAL**返回当前序列值,但不会引起序列值增加;**NEXTVAL**返回下一个序列值,并且会使序列值增加。 - **ROWNUM**:用于标识查询结果集中的行号...
- **常用函数**:文档列出了多种Oracle数据库中的常用函数,如`substr`、`lpad/rpad`等。 - **日期函数**:包括`trunc`等用于日期处理的函数。 - **随机取前10条不同的记录**:介绍了一种获取随机样本的方法。 - ...
触发器名为`update_cascade`,在`dept`表上的`deptno`列被更新后触发。触发器的目的是在部门编号更改后,更新员工表中的相关信息。 **扩展知识:** - `CREATE TRIGGER`: 定义新的触发器。 - `AFTER UPDATE OF`: ...
- 若要确保某列的值在一定范围内,应创建 `CHECK` 约束(C)。 9. **事务特性**: - 使用 `FOR UPDATE` 在游标中锁定行,体现了事务的隔离性(D)。 10. **PL/SQL 函数**: - 在 PL/SQL 自定义函数中,如果包含...
- **应用场景**:用于保证某列或某几列数据的唯一性,加快查询速度。 #### 创建复合索引 ```sql CREATE INDEX comp_index ON emp (ENAME, JOB); ``` - **命令解析**:在`emp`表的`ENAME`和`JOB`两列上创建一个复合...