-- 创建触发器示例代码
-- 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 字符转日期
下一篇:mysql修改数据库名称
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站