`
ydcworld
  • 浏览: 23698 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

trigger on view 不能触发

 
阅读更多
Today create a trigger on a view like:
create or replace
TRIGGER trigger_name
INSTEAD OF UPDATE ON view_name
FOR EACH ROW
DECLARE

BEGIN

send date to other tables.

EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLERRM);
    ROLLBACK;

END;

after create trigger,i create a sql to test it,
UPDATE view_name SET column_a='a';
problem comes,the trigger cann't fired,just see result 0 record updated.
cost many time,later find the key problem is there is no date in view some no record be updated,so the trigger will not be fired.the best way to void this problem is to use insert sql statement instead of update sql statement.
分享到:
评论

相关推荐

    sql.zip_trigger

    2. **创建触发器(Create Trigger)**:创建触发器需要指定触发事件(如INSERT、UPDATE或DELETE),影响的表,以及触发器的逻辑。以下是一个简单的创建触发器的例子: ```sql CREATE TRIGGER trg_after_insert ...

    DB-实验八触发器.docx

    trigger_name 必须遵循标识符规则,但 trigger_name 不能以 # 或 ## 开头。 * table | view:对其执行 DML 触发器的表或视图,有时称为触发器表或触发器视图。 * FOR | AFTER:指定触发器仅在触发事件完成以后才执行...

    Oracle触发器 实例讲解

    类似于存储过程,但是用户不能直接调用他们。它主要有以下几个功能: 1. 允许/限制对表的修改:触发器可以控制对表的修改操作,例如限制某些用户对表的修改权限。 2. 自动生成派生列:触发器可以自动生成派生列,...

    SQL_Server触发器创建、删除、修改、查看示例

    ON {table_name | view_name} {FOR | AFTER | INSTEAD OF} [INSERT, UPDATE, DELETE] AS BEGIN -- SQL statements END; ``` #### 五、示例 下面是一些具体的触发器创建示例: 1. **订单插入触发器**:如果商品...

    oracleDML触发器.ppt

    语法格式为:CREATE [OR REPLACE] TRIGGER trigger_name {{BEFORE | AFTER} {INSERT | DELETE | UPDATE} [OF column[, column[, column…]]] ON {table_name | view_name} [REFERENCING {OLD [AS] old_name | NEW ...

    Oracle之创建触发器.pdf

    触发器不能接受参数,并且能够响应对表的操作,甚至包括Oracle系统的特定事件,如数据库的启动和关闭。触发器的主要功能包括: 1. **安全性**:可以限制或允许对表的特定修改,例如限制非工作时间的数据修改。 2. *...

    有关触发器的文件和例子

    **示例2**:创建一个触发器,限制每次工资变动不能超过2000元。如果超过,则拒绝插入该记录。 ```sql CREATE TRIGGER 触发器_工资变动限制 ON pmanager AFTER UPDATE AS BEGIN IF EXISTS (SELECT * FROM deleted d...

    不能在存储过程中使用的语句

    `CREATE TRIGGER` 命令用于定义这种触发行为,但由于触发器与存储过程具有不同的作用机制,因此不能在存储过程中创建触发器。 ### 6. `CREATE VIEW` 视图是一种虚拟表,由一个SELECT语句定义,并且可以像普通表一样...

    触发器讲解

    不同于常规的存储过程,触发器不能直接被调用,而是通过特定的数据库操作(如插入、删除或修改)间接触发执行。这使得触发器在数据管理中具有精细且复杂的数据控制能力。 SQL Server 中,触发器主要分为两种类型:...

    数据库学习中的触发器

    这里,`trigger_name`是触发器的名称,`table`或`view`是触发操作的对象,`WITH ENCRYPTION`用于加密触发器定义,`FOR`、`AFTER`或`INSTEAD OF`定义触发时机,`INSERT`、`UPDATE`和`DELETE`定义触发操作,`sql_...

    oracleDML触发器1.ppt

    触发器不能接受参数,并且它们的存在是为了响应特定的数据库操作,如数据修改或某些系统事件。触发器由以下几个主要部分组成: - 触发器名称:唯一标识触发器的标识符。 - 触发事件:定义何时触发触发器,例如INSERT...

    数据库系列(:MySQL 视图、触发器的原理与实战

    视图(View)是基于一个或多个表的虚拟表,它本身并不存储数据,而是由一系列定义好的SQL查询构成。视图可以被用来简化复杂的查询操作,增强数据的安全性和简化数据管理。 **1. 视图的特点** - **虚拟性**:视图并...

    SQLite触发器的SQL语法.pdf

    触发器还可以与ON CONFLICT子句结合使用,但需要注意的是,如果触发器本身包含了ON CONFLICT子句,那么它将覆盖触发触发器的那个原始SQL语句中的ON CONFLICT处理方式。 在SQLite中,触发器是与表或视图关联的。视图...

    Android代码-RecyclerViewPager

    android.support.v4.view.ViewPager的完美替代品 Features: Base on RecyclerView. Custom fling factor. Custom paging trigger. Support Vertical and Horizontal orientation. Support FragmentViewPager (api ...

    SQLITE sql语句使用总结

    SQLite SQL 语句使用...在本文中,我们介绍了 SQLite 的基本概念和结构定义,包括 CREATE TABLE、CREATE VIEW 和 CREATE TRIGGER 语句的使用。掌握这些命令可以帮助您更好地使用 SQLite,提高数据库设计和开发效率。

    ORACLE触发器、内置程序包教学.doc )

    不同于普通存储过程,触发器不能被显式调用,而是在预定义的事件触发下自动运行。触发器的功能广泛,包括但不限于: - **自动生成数据**:例如,在插入新记录时自动填充某些字段。 - **自定义安全权限**:实现复杂...

    SQLSever触发器.pdf

    ON table_or_view [WITH ENCRYPTION] [NOT FOR REPLICATION] AS sql_statements ``` 在这里,`trigger_name`是触发器的名称,`table_or_view`是触发器关联的表或视图。`WITH ENCRYPTION`选项用于加密触发器...

    Backbone中View之间传值的学习心得

    首先,Backbone允许我们利用事件触发和监听来实现View间的通信。这种机制的核心思想是将Backbone作为事件注册机。以下是一个简单的示例: ```javascript var ApplicationView = Backbone.View.extend({ initialize...

Global site tag (gtag.js) - Google Analytics