`

Oracle trigger Example

阅读更多

 

先上个小例子(触发器的功能是:保证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官网

 

分享到:
评论

相关推荐

    Direct Oracle Access 4.1.2 Full Source for Delphi 2010

    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...

    oracle设置主键自动增长

    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` 表...

    oracle 系统表大全

    - 包括但不限于: CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED 和 VIEW。 - `SELECT * FROM dba_objects;`:列出...

    oracle中设置自增主键参考

    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自增

    在Oracle数据库中,实现ID自增的一种常见方法是通过结合使用序列(Sequence)和触发器(Trigger)。这种方法非常实用,特别是在需要为表中的记录自动生成唯一标识符的情况下。 ##### 创建序列(Sequence) 首先,...

    Oracle系统表查询

    - TRIGGER - TYPE - UNDEFINED - VIEW 4. **表查询** - **`DBA_TABLES`**: 显示所有表的信息。 ```sql SELECT * FROM DBA_TABLES; ``` - **分析表统计信息**: ```sql ANALYZE TABLE my_table COMPUTE ...

    Oracle 系统表大全

    - TRIGGER - TYPE - UNDEFINED - VIEW **示例命令:** ```sql SELECT * FROM dba_objects; ``` 通过查询`dba_objects`表,我们可以快速定位到特定类型的对象,并对其进行进一步的操作。 #### 4. 表管理:`dba_...

    Oracle语句大全

    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格式正确,不...

    oracle创建各种对象

    CREATE INDEX idx_example ON my_table (column_name); ``` 3. **视图(View)**:视图是从一个或多个表中选择数据的虚拟表。创建视图的命令是`CREATE VIEW`: ```sql CREATE VIEW my_view AS SELECT column1, ...

    关于oracleIP

    在Oracle中,可以通过创建序列(Sequence)和触发器(Trigger)的方式来实现自增字段。 ##### 1. 创建序列 序列是一种特殊类型的数据库对象,它可以用来生成一系列的数值。这些数值可以是递增或递减的,也可以根据...

    oracle 自增长主键.doc

    Oracle数据库系统中,自增长主键是一种常见的设计模式,用于创建具有自动递增的唯一标识符。在Oracle中,我们通常使用序列(Sequence)来实现这个功能,而不是像其他数据库系统那样使用内置的自增机制。以下是对...

    ORACLE关系数据库中SQL*FORM的触发器.pdf

    在ORACLE关系数据库系统中,SQL*FORM的触发器机制是通过CREATE TRIGGER语句来实现的。CREATE TRIGGER语句用于创建一个触发器,定义触发器的名称、事件类型、触发器体等。例如,以下是一个简单的触发器示例: ``` ...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    通过“Oracle PLSQL by Example, Third Edition”这样的书籍,你可以期待学习到上述知识的详细解释和实际应用示例。书中可能包含各种类型的PL/SQL程序设计技巧,从简单的存储过程和函数到复杂的事务处理和并发控制...

    Oracle 对系统表操作

    `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 数据库的...

    PLSQL笔记-从hello word到触发器,包,游标高级应用

    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; / ``` 此触发器会在新员工插入前检查年龄,...

    11g_plsql_user_guide_and_reference.pdf

    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 ...

    spring集成quartz集群配置

    因此,首先你需要在你的项目中配置一个数据库(如MySQL、Oracle等)并创建Quartz所需的表。文件`dbTables`可能包含用于创建这些表的SQL脚本。执行这些脚本,Quartz将能够存储和检索作业信息。 以下是一个简单的...

Global site tag (gtag.js) - Google Analytics