データがテーブルに更新されないようにするbeforeトリガーがあります。このため私は "SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'この操作は許可されていません。';" 同時に、別のテーブルにデータを挿入したい場合もあります。 しかし、そのデータが挿入されないようにしています。私のコードは以下の通りです。Mysql:SIGNAL SQLSTATEがデータの挿入を妨げています
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 $$