BEFORE UPDATE触发器(更新前触发器)就是MySQL将在执行UPDATE操作之前触发此触发器。
在MySQL中创建BEFORE UPDATE触发器的语法为:
CREATE
TRIGGER
trigger_name
BEFORE
UPDATE
ON
table_name
FOR
EACH ROW
BEGIN
-- variable declarations
-- trigger code
END
;
注意您不能在视图上创建 BEFORE 触发器。有两个变量NEW和OLD分别代表执行触发器前后的记录。NEW 的值可以被更新,OLD的值不能被更新比如想执行触发器后,新值都加5 ,可以这样写NEW.value = OLD.value
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_update
DECLARE
vUser
varchar
(50);
-- 查找执行了insert操作的用户名,放到变量vUser中
SELECT
USER
()
INTO
vUser;
-- 将更新操作记录保存到审计表中
INSERT
contacts_audit
( contact_id,
updated_date,
updated_by)
VALUES
( NEW.contact_id,
SYSDATE(),
vUser );
; //
DELIMITER ;
原文链接:https://codingdict.com/