我可以使用OR条件创建 MYSQL TRIGGER
创建或替换TRIGGER TIGGER NAME 在插入之前或更新或删除
喜欢这个(下面是ORACLE TRIGGER):
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条件创建TRIGGER?
同样来自phpmyadmin的事件部分中没有选项可以添加或条件,即选择 INSERT,UPDATE AND DELETE 没有规定将置于插入或更新或删除之前 所以我的问题是,它可能像上面的Oracle触发器一样吗?
答案 0 :(得分:0)
我认为MySQL不会为单个触发器提供多个事件。你能做什么您只需创建一个procedure
,并在该过程中按原样编写完整的逻辑。
将NEW和OLD值作为参数放入该过程。
从所有三个触发器调用该过程。