首先,大家需要先创建一个存储过程(Stored Procedure)。在存储过程内,大家可以定义多次操作。当存储过程执行成功时,它会一次性提交所有的操作;如果有任何一个操作失败,整个存储过程会回滚(Rollback)到执行之前的状态。
DELIMITER // CREATE PROCEDURE my_transaction() BEGIN DECLARE exit handler for sqlexception BEGIN ROLLBACK; END; START TRANSACTION; -- 执行多个 SQL 语句 -- 如果有任何一个语句失败,则整个事务回滚 COMMIT; END // DELIMITER ;
上述代码创建了一个名为my_transaction的存储过程,该存储过程将在事务中执行多个SQL语句。如果其中任意一个语句出错,则回滚事务。
接下来,大家可以使用以下语法来调用存储过程执行事务:
CALL my_transaction();
调用上述存储过程后,MySQL 将执行该存储过程内定义的所有操作。如果所有操作都执行成功,MySQL会自动提交整个事务。如果其中有任何一个操作失败,MySQL会自动回滚整个事务,将数据库恢复到调用存储过程之前的状态。
这就是使用MySQL Call语句执行事务的方法。通过创建一个名为my_transaction的存储过程,并在其中定义多个SQL操作,大家可以确保所有操作要么全部成功,要么全部失败,从而确保数据的安全性。