触发操作时不触发

时间:2016-11-26 07:32:07

标签: sql oracle plsql database-trigger

在一个表上创建一个触发器,该表被编译并发送消息" Trigger Created"显示了。

但是在特定表上的操作中,触发器不会触发。

可能是什么问题或者是否有一个问题?

3 个答案:

答案 0 :(得分:0)

检查您的触发器是否处于禁用状态。如果是,请启用触发器。

ALTER TABLE table_name ENABLE TRIGGER tr_name

答案 1 :(得分:0)

如果您使用 oracle ,则可以尝试启用触发器

    ALTER TABLE tblName ENABLE TRIGGER trgName --WRONG

更正语法(感谢评论):

    ALTER TRIGGER trg_name ENABLE;

检查您的触发器是否存在,有效/无效等:

    SELECT * from dba_triggers WHERE LOWER(trigger_name) LIKE '%salupdate%';
    SELECT * FROM dba_objects WHERE LOWER(object_name) LIKE '%salupdate%';

用户在触发器中使用DBMS_OUTPUT.PUT_LINE,这在输出中看不到,以下解决了问题:

    SET SERVEROUTPUT ON;

答案 2 :(得分:0)

检查触发器是否有效并启用:

SELECT * FROM User_Objects t WHERE t.OBJECT_TYPE = 'TRIGGER';
SELECT t.* FROM User_Triggers  t;