【发布时间】:2017-03-03 22:57:42
【问题描述】:
我有一个前触发器,它可以防止数据更新到表中。为此,我使用了“SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This operation is not allowed.';”。 同时还想将数据插入到另一个表中。 但它阻止了插入数据。我的代码如下。
CREATE TRIGGER TRG_RESTRICT_UPDATE
BEFORE UPDATE ON AUDIT_DATA
FOR EACH ROW
BEGIN
INSERT INTO AUDIT_DATA_OTHER
(PRACTICE_GROUP_ID
,AUDIT_TYPE
,AUDIT_SUB_TYPE
,AUDIT_SOURCE
,EXTERNAL_SYSTEM_TYPE
,AUDIT_DATA
,FOUND_SET_AUDIT_DATA
,OWNER_TYPE
,OWNER_ID
,CUSTOMER_ID
,PATIENT_NUMBER
,PATIENT_FIRST_NAME
,PATIENT_LAST_NAME
,PATIENT_MIDDLE_NAME
,PATIENT_BIRTH_DATE
,AUDIT_INFO
,IP_ADDRESS
,WORKSTATION_NAME
,CREATE_BY
,CREATE_DATE
,CREATE_PROCESS
,USERNAME
,IS_EMERGENCY_MODE
,EMERGENCY_NOTES
,EMERGENCY_FIRST_NAME
,EMERGENCY_LAST_NAME
,ENCOUNTER_TYPE
,ENCOUNTER_DATE
,ENCRYPTED_AUDIT_DATA)
VALUES
(1
,'AttemptToModifyAuditRecord'
,'Update'
,'MAXIMEYES_APPLICATION'
,''
,NULL
,''
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,'SQL query which attempted to execute:Update'
,NULL
,NULL
,-1
,NOW()
,1
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL);
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This operation is not allowed.';
END $$
【问题讨论】: