2017-07-13 67 views
0
與MYSQL觸發器或條件

我可以創建一個MYSQL觸發與OR條件我可以創建在觸發

CREATE OR REPLACE TRIGGER跳跳虎NAME BEFORE INSERT OR UPDATE OR DELETE

像這樣(下面是一個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是否有可能創建一個TRIGGER With OR條件?

從phpmyadmin的

也有是在事件部分沒有選項添加或條件,即選擇INSERT,UPDATE和DELETE 沒有規定把BEFORE INSERT或UPDATE或DELETE 所以我的問題是那有可能像上面的Oracle觸發器那樣? enter image description here

+0

嘗試一次,親眼看看 – Rahul

回答

0

我覺得MySQL不會提供多個事件的單個trigger.What你可以做到這一點。 您只需創建一個procedure並在該過程中按原樣編寫整個邏輯。

將NEW和OLD值作爲該過程的參數。

And call that procedure from all three trigger.

希望這會幫助你。