先上个小例子(触发器的功能是:保证table_name表中
mobile字段不为空时是不能重复的
)
表结构
create table User_Info (
ID NUMBER(10) not null,
MOBILE VARCHAR2(20),
ORTHER VARCHAR2(20),
constraint PK_User_Info primary key (ID)
);
触发器
CREATE
OR
REPLACE
TRIGGER
table_mobile_unique
BEFORE
INSERT
OR
UPDATE
OF
mobile
ON
table_name
FOR
EACH
ROW
WHEN
( NEW.mobile
IS
NOT
null
AND
(OLD.mobile
is
NULL
OR
NEW.mobile <> OLD.mobile))
DECLARE
om_count
NUMBER
;
BEGIN
select
count
(id)
INTO
om_count
from
table_name
where
mobile = :NEW.mobile
and
id <> :NEW.id;
IF
om_count >=
1
THEN
raise_application_error(-
20000
,
'
手机号码已注册
'
);
END
IF
;
END
;
在oracle中怎样查找trigger:
select * from all_triggers
where table_name =upper('User_Info
')
在oracle中怎样删除trigger:
ALTER TRIGGER 名称 DISABLE;
drop trigger 名称;
更多的学习到oracle官网
分享到:
相关推荐
w Make use of server generated values (defaults, trigger modified columns) w Query By Example mode for high performance queryable forms without any programming w Use PL/SQL blocks for server logic in...
CREATE TRIGGER example_insert_trigger BEFORE INSERT ON example FOR EACH ROW WHEN (new.id IS NULL) BEGIN SELECT emp_sequence.NEXTVAL INTO :new.id FROM DUAL; END; ``` 此触发器的作用是在向 `example` 表...
- 包括但不限于: CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED 和 VIEW。 - `SELECT * FROM dba_objects;`:列出...
CREATE OR REPLACE TRIGGER trg_example_insert BEFORE INSERT ON example FOR EACH ROW WHEN (new.id IS NULL) BEGIN SELECT emp_sequence.nextval INTO :new.id FROM dual; END; ``` 触发器的主要功能是: - `...
在Oracle数据库中,实现ID自增的一种常见方法是通过结合使用序列(Sequence)和触发器(Trigger)。这种方法非常实用,特别是在需要为表中的记录自动生成唯一标识符的情况下。 ##### 创建序列(Sequence) 首先,...
- TRIGGER - TYPE - UNDEFINED - VIEW 4. **表查询** - **`DBA_TABLES`**: 显示所有表的信息。 ```sql SELECT * FROM DBA_TABLES; ``` - **分析表统计信息**: ```sql ANALYZE TABLE my_table COMPUTE ...
- TRIGGER - TYPE - UNDEFINED - VIEW **示例命令:** ```sql SELECT * FROM dba_objects; ``` 通过查询`dba_objects`表,我们可以快速定位到特定类型的对象,并对其进行进一步的操作。 #### 4. 表管理:`dba_...
CREATE OR REPLACE TRIGGER CheckEmail BEFORE INSERT ON Employees FOR EACH ROW BEGIN IF REGEXP_LIKE(:NEW.Email, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$') THEN NULL; -- 如果Email格式正确,不...
CREATE INDEX idx_example ON my_table (column_name); ``` 3. **视图(View)**:视图是从一个或多个表中选择数据的虚拟表。创建视图的命令是`CREATE VIEW`: ```sql CREATE VIEW my_view AS SELECT column1, ...
在Oracle中,可以通过创建序列(Sequence)和触发器(Trigger)的方式来实现自增字段。 ##### 1. 创建序列 序列是一种特殊类型的数据库对象,它可以用来生成一系列的数值。这些数值可以是递增或递减的,也可以根据...
Oracle数据库系统中,自增长主键是一种常见的设计模式,用于创建具有自动递增的唯一标识符。在Oracle中,我们通常使用序列(Sequence)来实现这个功能,而不是像其他数据库系统那样使用内置的自增机制。以下是对...
在ORACLE关系数据库系统中,SQL*FORM的触发器机制是通过CREATE TRIGGER语句来实现的。CREATE TRIGGER语句用于创建一个触发器,定义触发器的名称、事件类型、触发器体等。例如,以下是一个简单的触发器示例: ``` ...
通过“Oracle PLSQL by Example, Third Edition”这样的书籍,你可以期待学习到上述知识的详细解释和实际应用示例。书中可能包含各种类型的PL/SQL程序设计技巧,从简单的存储过程和函数到复杂的事务处理和并发控制...
`SELECT * FROM dba_objects`列出所有的数据库对象,包括CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW等。...
- **触发器 (Trigger)**: 当特定事件发生时自动执行的一段代码。 - **包 (Package)**: 将相关的过程、函数等组织在一起的容器。 - **同义词 (Synonym)**: 为数据库对象提供别名。 以上内容涵盖了 Oracle 数据库的...
CREATE TRIGGER check_age BEFORE INSERT ON employees FOR EACH ROW BEGIN IF :new.age RAISE_APPLICATION_ERROR(-20001, 'Age must be at least 18'); END IF; END; / ``` 此触发器会在新员工插入前检查年龄,...
For example, they can specify whether a trigger should be executed before or after a DML operation, or whether it should be executed for each row or for the entire statement. This level of control ...
因此,首先你需要在你的项目中配置一个数据库(如MySQL、Oracle等)并创建Quartz所需的表。文件`dbTables`可能包含用于创建这些表的SQL脚本。执行这些脚本,Quartz将能够存储和检索作业信息。 以下是一个简单的...