BEFORE DELETE触发器就是MySQL将在执行DELETE操作之前触发该触发器。
在MySQL中创建BEFORE DELETE触发器的语法为:
CREATE
TRIGGER
trigger_name
BEFORE
DELETE
ON
table_name
FOR
EACH ROW
BEGIN
-- variable declarations
-- trigger code
END
;
参数|说明trigger_name | 要创建的触发器的名称。BEFORE DELETE | 表明触发器将在执行DELETE操作之前触发。table_name | 要创建触发器的表的名称。
注意您不能在视图上创建 BEFORE DELETE 触发器。有两个变量NEW和OLD分别代表执行触发器前后的记录。NEW 的值可以被更新,OLD的值不能被更新比如想执行触发器后,新值都加5 ,可以这样写NEW.value = OLD.value
下面的示例说明如何使用MySQL中的CREATE TRIGGER语句创建BEFORE DELETE触发器。
TABLE
contacts
( contact_id
INT
(11)
NOT
NULL
AUTO_INCREMENT,
last_name
VARCHAR
(30)
,
first_name
(25),
birthday
DATE
created_date
created_by
(30),
CONSTRAINT
contacts_pk
PRIMARY
KEY
(contact_id)
);
DELIMITER //
contacts_before_delete
DECLARE
vUser
varchar
(50);
-- 查找执行了insert操作的用户名,放到变量vUser中
SELECT
USER
()
INTO
vUser;
-- 将delete操作记录放到审计表中
INSERT
contacts_audit
( contact_id,
deleted_date,
deleted_by)
VALUES
( OLD.contact_id,
SYSDATE(),
vUser );
; //
DELIMITER ;
原文链接:https://codingdict.com/