本MySQL教程中将学习如何在MySQL中创建 BEFORE INSERT触发器。
BEFORE INSERT触发器是指MySQL将在执行INSERT操作之前触发此触发器。
在MySQL中创建BEFORE INSERT触发器的语法为:
CREATE
TRIGGER
trigger_name
BEFORE
INSERT
ON
table_name
FOR
EACH ROW
BEGIN
-- 变量声明
-- 触发器代码
END
;
注意您不能在视图上创建 BEFORE触发器。有两个变量NEW和OLD分别代表执行触发器前后的记录。NEW 的值可以被更新,OLD的值不能被更新比如想执行触发器后,新值都加5 ,可以这样写NEW.value = OLD.value
让我们看看如何在MySQL中使用CREATE TRIGGER语句创建BEFORE INSERT触发器。
创建表:
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)
);
创建一个BEFORE INSERT触发器
</td>
DELIMITER //
contacts_before_insert
DECLARE
vUser
varchar
(50);
-- 查找执行insert操作的用户名,放到变量vUser中
SELECT
USER
()
INTO
vUser;
-- 将create_date字段更新为当前系统日期
SET
NEW.created_date = SYSDATE();
-- 将created_by字段更新为执行insert操作的用户的名称。
NEW.created_by = vUser;
; //
DELIMITER ;
这样当有人在表contacts上执行sql insert语句,created_date created_by 两个字段就会记录操作人和操作时间。
原文链接:https://codingdict.com/