-- 创建触发器示例代码
-- 1. 创建一个在插入数据时触发的触发器
DELIMITER //
CREATE TRIGGER before_insert_example
BEFORE INSERT ON your_table_name
FOR EACH ROW
BEGIN
-- 在插入新记录之前执行的操作
SET NEW.column_name = UPPER(NEW.column_name); -- 将某一列的值转换为大写
END; //
DELIMITER ;
-- 2. 创建一个在更新数据时触发的触发器
DELIMITER //
CREATE TRIGGER after_update_example
AFTER UPDATE ON your_table_name
FOR EACH ROW
BEGIN
-- 在更新记录之后执行的操作
IF OLD.column_name != NEW.column_name THEN
INSERT INTO audit_log (table_name, action, old_value, new_value)
VALUES ('your_table_name', 'UPDATE', OLD.column_name, NEW.column_name);
END IF;
END; //
DELIMITER ;
-- 3. 创建一个在删除数据时触发的触发器
DELIMITER //
CREATE TRIGGER after_delete_example
AFTER DELETE ON your_table_name
FOR EACH ROW
BEGIN
-- 在删除记录之后执行的操作
INSERT INTO audit_log (table_name, action, deleted_value)
VALUES ('your_table_name', 'DELETE', OLD.column_name);
END; //
DELIMITER ;
触发器类型:
BEFORE
和 AFTER
:触发器可以在操作(如插入、更新或删除)之前 (BEFORE
) 或之后 (AFTER
) 触发。触发时机:
INSERT
:在插入新记录时触发。UPDATE
:在更新现有记录时触发。DELETE
:在删除记录时触发。作用范围:
FOR EACH ROW
:表示触发器对每一行数据都生效。示例代码中的具体操作:
DELIMITER //
和 DELIMITER ;
:
上一篇:mysql row_number() over怎么使用
下一篇:mysql修改数据库名称
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站