
在MySQL中,要在存储过程中返回更新前的记录,你可以使用BEFORE UPDATE触发器。触发器是一种特殊类型的存储过程,它在执行特定操作(如INSERT、UPDATE或DELETE)之前或之后自动执行。在这种情况下,我们将使用BEFORE UPDATE触发器来捕获更新前的记录。
以下是一个示例,说明如何创建一个BEFORE UPDATE触发器来返回更新前的记录:
CREATE TABLE updated_records (
    id INT AUTO_INCREMENT PRIMARY KEY,
    old_data JSON
);BEFORE UPDATE触发器,用于在更新操作之前捕获更新前的记录:DELIMITER //
CREATE TRIGGER capture_old_data
BEFORE UPDATE
ON your_table FOR EACH ROW
BEGIN
    INSERT INTO updated_records (old_data) VALUES (JSON_OBJECT(
        'column1', OLD.column1,
        'column2', OLD.column2,
        -- 添加其他列,如果需要的话
    ));
END;
//
DELIMITER ;请将your_table替换为你要监视的表名,并根据需要添加其他列。
your_table表中的记录时,触发器将在updated_records表中插入一条包含更新前数据的记录。updated_records表:SELECT * FROM updated_records;这样,你就可以在存储过程中捕获并返回更新前的记录了。请注意,触发器是在数据库级别上运行的,而不是在特定的存储过程中运行的。这意味着,只要在your_table表上执行更新操作,触发器就会自动捕获更新前的记录。