【发布时间】:2017-12-18 06:34:30
【问题描述】:
我可以创建一个 MYSQL 带 OR 条件的触发器
创建或替换触发器名称 在插入之前或更新或删除
喜欢这个(下面是一个 ORACLE 触发器):
CREATE OR REPLACE TRIGGER TRIGERNAME_XYZ
BEFORE INSERT OR UPDATE OR DELETE
ON TABLE_NAME_ABC
REFERENCING OLD as OLD NEW as NEW
FOR EACH ROW
DECLARE
mAppUserCode VARCHAR2(50);
mOSUser VARCHAR2(100);
mAppUserName VARCHAR2(100);
mModuleName VARCHAR2(100);
mChangeID NUMBER;
BEGIN
SELECT APP_USERCODE, OS_USER, APP_USERNAME, MODULE_NAME INTO mAppUserCode, mOSUser, mAppUserName, mModuleName FROM DB_SESSION_VIEW;
SELECT CHANGE_ID_SEQ.NEXTVAL INTO mChangeID FROM DUAL;
IF INSERTING THEN
:NEW.CREATED_BY_MODULE := mModuleName;
:NEW.CREATED_BY_USER_CODE := mAppUserCode;
:NEW.CREATED_BY_OS_USER := mOSUser;
:NEW.CREATED_BY_USER_NAME := mAppUserName;
:NEW.CREATED_ON := sysdate;
:NEW.CHG_ID := mChangeID ;
ELSIF UPDATING THEN
:NEW.CHANGED_BY_MODULE := mModuleName;
:NEW.CHANGED_BY_USER_CODE := mAppUserCode;
:NEW.CHANGED_BY_OS_USER := mOSUser;
:NEW.CHANGED_BY_USER_NAME := mAppUserName;
:NEW.CHANGED_ON := sysdate;
:NEW.CHG_ID := mChangeID ;
END IF;
END;
/
在 MYSQL 中是否可以使用 OR 条件创建触发器??
同样在 phpmyadmin 中,事件部分没有添加 or 条件的选项,即选择 INSERT ,UPDATE AND DELETE 没有规定放置在插入或更新或删除之前 所以我的问题是,是否有可能像上面的 Oracle 触发器一样?
【问题讨论】:
-
试一试,亲眼看看
标签: mysql oracle11g triggers database-schema