美文网首页
MySQL的带参数事务的存储过程简单实例

MySQL的带参数事务的存储过程简单实例

作者: 九夜之秋 | 来源:发表于2018-08-24 10:46 被阅读0次
1 2

表关联形式为:PetAge->PetsonPet->Person.

代码如下:

DROP PROCEDURE IF EXISTS delatePerson;

CREATE PROCEDURE delatePerson(in personId INT)

BEGIN

   DECLARE petId INT;

   DECLARE petAgeId INT;

   DECLARE t_error INT DEFAULT 0; 

   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;

   SELECT id INTO petId FROM personpet pp WHERE pp.id=personId;

   SELECT id INTO petAgeId FROM petage pa WHERE pa.id=petId;

  START TRANSACTION;

   DELETE FROM petage WHERE petage.id=petAgeId;

   DELETE FROM personpet WHERE personpet.id=petId;

   DELETE FROM person WHERE person.id=personId;

   IF t_error = 1 THEN 

      ROLLBACK; 

   ELSE 

      COMMIT; 

    END IF;

select t_error;

END

其中在存储过程中自定义变量使用declare(局部)或者set(全局);
变量查询赋值使用“select 字段 into 变量”的语句;

开启事务start transaction或者begin,需要回滚则需要一个变量判断是否错误,使用DECLARE t_error INT DEFAULT 0; 

   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;然后判断t_error的值来判断是否提交还是回滚;
最后调用存储过程使用CALL()方法即可。

相关文章

  • MySQL的带参数事务的存储过程简单实例

    表关联形式为:PetAge->PetsonPet->Person. 代码如下: DROP PROCEDURE IF...

  • Mysql存储过程!

    --不带参数的存储过程--- ---带参数的存储过程--- ------带有执行参数的存储过程---- ----带...

  • SQL Server存储过程实例

    1、不带参数的存储过程 2、带参数的存储过程 3、参数带默认值的存储过程 4、创建带输出参数的存储过程 5、存储过...

  • 存储过程

    创建存储过程 mysql: 执行存储过程 mysql: 使用OUT参数和INOUT参数: PREPARE和EXEC...

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • springMvc接收请求参数(入门 => 放弃)

    helloworld简单实例 带参数的Get请求 带参数的Post请求 helloworld简单实例 首先我们先创...

  • 带if的存储过程

    带if的存储过程 CREATE PROCEDURE 存储过程名(参数名1 参数类型1,参数名2 参数类型2,......

  • 创建带输出参数的存储过程

    带输出参数的存储过程语法如下: CREATE PROC / PROCEDURE 存储过程名 @参数1 数据...

  • 文件

    mysql参数文件 定义:告诉mysql实例启动时候在哪里可以找到数据库文件,并指定某些初始化参数 参数存储在my...

  • 详解MySQL执行事务的语法和流程

    摘要:MySQL 提供了多种存储引擎来支持事务。 MySQL 提供了多种存储引擎来支持事务。支持事务的存储引擎有 ...

网友评论

      本文标题:MySQL的带参数事务的存储过程简单实例

      本文链接:https://www.haomeiwen.com/subject/cuhbiftx.html