在PHP和MySQL中,触发器是一种特殊的存储过程,它会在满足特定条件时自动执行。要传递变量给触发器,可以使用以下方法:
NEW
和OLD
关键字:在触发器中,可以使用NEW
和OLD
关键字访问插入或更新的行数据。NEW
关键字表示新的行值,OLD
关键字表示旧的行值。这两个关键字可以作为变量传递给触发器。
例如,以下触发器在更新users
表时将新的用户名插入到user_log
表中:
CREATE TRIGGER user_update
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
INSERT INTO user_log (user_id, old_username, new_username)
VALUES (OLD.id, OLD.username, NEW.username);
END;
SET
语句:在触发器内部,可以使用SET
语句将变量值设置为NEW
或OLD
关键字的值。例如:
CREATE TRIGGER user_update
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
DECLARE old_username VARCHAR(255);
DECLARE new_username VARCHAR(255);
SET old_username = OLD.username;
SET new_username = NEW.username;
INSERT INTO user_log (user_id, old_username, new_username)
VALUES (OLD.id, old_username, new_username);
END;
腾讯云数据库(Tencent Cloud Base)是一种完全托管的数据库服务,支持MySQL和MongoDB。要在腾讯云数据库中创建触发器,可以使用腾讯云控制台或API。以下是一个使用腾讯云数据库触发器的示例:
CREATE TRIGGER user_update
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
DECLARE old_username VARCHAR(255);
DECLARE new_username VARCHAR(255);
SET old_username = OLD.username;
SET new_username = NEW.username;
INSERT INTO user_log (user_id, old_username, new_username)
VALUES (OLD.id, old_username, new_username);
END;
推荐的腾讯云相关产品:
腾讯云产品介绍链接地址:https://cloud.tencent.com/product
领取专属 10元无门槛券
手把手带您无忧上云