首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在mysql中存储的proc总是返回0

在MySQL中,存储过程(proc)是一组预编译的SQL语句,它们被存储在数据库中并可以在需要时被调用。存储过程可以接受参数,并且可以包含条件判断、循环、异常处理等逻辑。

当存储过程返回0时,可能有以下几个原因:

  1. 存储过程中的逻辑错误:存储过程中的代码逻辑可能存在错误,导致返回值始终为0。这可能是由于条件判断、循环或异常处理等部分的错误逻辑导致的。需要仔细检查存储过程的代码,确保逻辑正确。
  2. 存储过程中的返回值设置错误:存储过程可以通过设置返回值来返回特定的结果。如果存储过程中的返回值设置错误,可能会导致始终返回0。需要检查存储过程中是否正确设置了返回值。
  3. 存储过程中的查询结果为0:存储过程中可能包含了查询语句,如果查询结果为0,那么存储过程的返回值也会为0。需要检查存储过程中的查询语句,确保其能够返回正确的结果。
  4. 存储过程调用时的参数传递错误:存储过程可以接受参数,如果在调用存储过程时传递的参数有误,可能导致存储过程返回0。需要检查存储过程的参数传递是否正确。

总结起来,当MySQL中存储的存储过程(proc)总是返回0时,需要仔细检查存储过程的代码逻辑、返回值设置、查询语句和参数传递等方面,确保其正确性。如果问题仍然存在,可能需要进一步调试和排查。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java为什么不同返回类型不算方法重载?

doSomething } public void method(Integer id, String name) { // doSomething } } 为什么不同返回类型不算方法重载...从方法签名组成规则我们可以看出,方法返回类型不是方法签名组成部分,所以当同一个类中出现了多个方法名和参数相同,但返回值类型不同方法时,JVM 就没办法通过方法签名来判断到底要调用哪个方法了,如下图所示...: 那为什么返回类型不能做为方法签名一部分呢?...总结 同一个类定义了多个同名方法,但每个方法参数类型或者是参数个数不同就是方法重载。方法重载典型使用场景是 String valueOf 方法,它有 9 种实现。...方法返回类型不能作为方法重载依据,因为它不是方法签名组成部分。

3.4K10
  • 审计对存储MySQL 8.0分类数据更改

    之前博客,我讨论了如何审计分类数据查询。本篇将介绍如何审计对机密数据所做数据更改。...特别是对于可能具有数据访问权限但通常不应查看某些数据管理员。 敏感数据可以与带有标签数据穿插在一起,例如 公开 未分类 其他 当然,您可以MySQL Audit打开常规插入/更新/选择审计。...-p INSTALL COMPONENT "file://component_audit_api_message_emit"; [mysqld]启用启动时审计并设置选项。...重新启动MySQL服务器。 注意:有多种方法可以启用审计而无需重新启动。但是您要强制执行审计-因此,上面是您操作方式。 以下简单过程将用于写入我想在我审计跟踪拥有的审计元数据。...FOR和ACTION是写入审计日志元数据标签。在这种情况下,FOR将具有要更改其级别数据名称,而ACTION将是更新(之前和之后),插入或删除时使用名称。

    4.7K10

    Activity onCreate() 方法为什么获取 View 宽和高为0

    Activity onCreate() 方法为什么获取 View 宽和高为0 ?...| height=0 如上面代码结果所示,ActivityonCreate()方法我们尝试获取控件宽和高,却获取得是0,这是因为 View 绘制和 Activity 生命周期方法并不同步,即使...: 方法一、 Activity onWindowFocusChanged() 方法获取 View 尺寸。...,例如可以使用延时或者onCreate()方法手动调用 View 测量方法,相对而言以上几种方法更为方便。...---- 最后想说是,本系列文章为博主对Android知识进行再次梳理,查缺补漏学习过程,一方面是对自己遗忘东西加以复习重新掌握,另一方面相信重新学习过程定会有巨大新收获,如果你也有跟我同样想法

    1.2K30

    MySQL---数据库从入门走向大神系列(八)-java执行MySQL存储过程

    http://blog.csdn.net/qq_26525215/article/details/52143733 在上面链接博客,写了如何用MySQL语句定义和执行存储过程 Java执行存储过程:...Java演示执行带输入参数存储过程: 构造 call 转义序列时,请使用 ?(问号)字符来指定 IN 参数。此字符充当要传递给该存储过程参数值占位符。...向 setter 方法传递值时,不仅需要指定要在参数中使用实际值,还必须指定参数存储过程序数位置。例如,如果存储过程包含单个 IN 参数,则其序数值为 1。...Java演示执行带输入输出参数存储过程: 构造 call 转义序列时,请使用 ?(问号)字符来指定 OUT 参数。 此字符充当要从该存储过程返回参数值占位符。...当您对于 OUT 参数向 registerOutParameter 方法传递一个值时,不仅必须指定要用于此参数数据类型,而且必须在存储过程中指定此参数序号位置或此参数名称。

    1.1K20

    MariaDB 存储过程与函数详解

    ,MySQL创建存储过程和函数使用语句分别是:CREATE PROCEDURE和CREATE FUNCTION.使用CALL语句来调用存储过程,只能用输出变量返回值.函数可以从语句外调用(即通过引用函数名...param_name表示参数名称,type表示参数类型,该类型可以使MySQL数据库任意类型.创建简单存储过程: 创建一个存储过程Proc(),实现查询lyshark数据表所有字段.MariaDB...MySQL内部函数使用方法是一样,MySQL,用户自己定义存储函数与MySQL内部函数是一个性质.区别在于,存储函数是用户自己定义,而内部函数则是开发者编写.创建存储函数: 创建储存函数...RETURN语句返回一个类型不同于函数值,返回值将被强制为恰当类型.提示:指定参数为IN,OUT或者INOUT只对PROCEDURE是合法.FUNCTION总是默认为IN参数.RETURNS...声明使用变量变量可以子程序声明并使用,这些变量作用范围实在BEGIN...END程序,本小姐将介绍定义和赋值一个变量,定义变量语句如下:DECLARE var_name[,varname]..

    1.5K20

    MySQL 存储过程与函数(精简笔记)

    MySQL 是最流行关系型数据库管理系统之一, WEB 应用方面,MySQL是最好 RDBMS (Relational Database Management System,关系数据库管理系统)...存储程序可以分为存储过程和函数,MySQL创建存储过程和函数使用语句分别是:CREATE PROCEDURE和CREATE FUNCTION.使用CALL语句来调用存储过程,只能用输出变量返回值.函数可以从语句外调用...表示参数类型,该类型可以使MySQL数据库任意类型....存储函数使用方法与MySQL内部函数使用方法是一样,MySQL,用户自己定义存储函数与MySQL内部函数是一个性质.区别在于,存储函数是用户自己定义,而内部函数则是开发者编写....提示:指定参数为IN,OUT或者INOUT只对PROCEDURE是合法.FUNCTION总是默认为IN参数.RETURNS子句只能对FUNCTION做指定,对函数而言这是强制.它用来指定函数返回类型

    1.9K10

    MySQL如何获取存储过程参数?

    01 MySQL 存储过程参数 MySQL存储过程,可以理解成一段代码,每次调用这段代码,可以帮助你实现对应功能,例如下面这段代码,就是帮助我们连续插入1000个记录在表t里面: delimiter...当然,现实工作,由于各种各样原因,存储过程总是会存在。...02 获取参数2种方案 方法一、使用mysql.proc表(仅限MySQL5.7及以下版本) MySQL元信息表,可以通过mysql.proc表去查看一个存储过程参数,如下: mysql...注意:MySQL8.0mysql.proc表被去掉了,这种方法也就不适用了。...作为一名运维同学,可能需要考虑让你业务方尽可能存储过程、函数之类对象,从MySQL数据库剥离出来,这样在运维过程,可能会更加方便,MySQL性能会更好。

    3.4K60

    深入探索地理空间查询:如何优雅地MySQL、PostgreSQL及Redis实现精准地理数据存储与检索技巧

    在这个全面的GIS技术指南中,我们将一起揭开数据背后世界,发现地理空间查询大数据分析无限可能!我们将探讨如何有效存储地理空间数据,实现高效地理空间数据查询,以及如何进行精准空间数据分析。...MySQL:基础而实用地理空间查询 1.1 创建表格和数据插入 MySQL,我们使用POINT类型存储地理空间数据,并可以利用ST_Point函数插入数据。...这些函数可以帮助我们判断空间对象之间位置关系,并在此基础上执行相应查询。 1.5 空间索引使用 虽然在上面的示例我们创建了一个空间索引,但要确保它被正确使用并不总是那么简单。...虽然本示例我们使用是 2D 空间数据,但 PostGIS 也支持 3D 空间数据存储和查询,请根据您需求选择合适数据类型和函数。 3....例如,一个基于位置推荐系统,我们可以将地理位置信息和用户喜好信息存储不同数据结构,并通过组合查询来获得推荐结果。

    70810

    oracle与mysql存储区别_存储过程和触发器区别和联系

    总结一下oracle和mysql存储过程几种区别: 1.创建存储过程语句不同 2.创建函数语句不同 3.传入参数写法不同 4.包声明方式 5.存储过程返回语句不同 6.存储过程异常处理不同...mysql使用先删除老存储过程,然后再创建新存储过程. 2. oracle 存储过程可以定义package,也可以定义Procedures....(FUNCTION参数总是被认为是IN参数) RETURNS字句只能对FUNCTION做指定,对函数而言这是强制。它用来指定函数返回类型,而且函数体必须包含一个RETURN value语句。...SD_FACILITY_PKG.P_ADD_FAC to mysql SD_FACILITY_P_ADD_FAC 5.存储过程返回语句不一样 oracle return; mysql LEAVE proc...Mysql: 没有NO_DATA_FOUND这个属性.但可是使用FOUND_ROWS()方法得到select语句查询出来数据.如果FOUND_ROWS()得到值为0,就进入异常处理逻辑. 9.存储过程调用存储过程方式不同

    1.3K10

    MySQL存储过程创建及调用

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL“脚本”     1.创建存储过程     2.调用存储过程     3.存储过程体     4.语句块标签 存储过程参数...优点(为什么要用存储过程?)...一、存储过程创建和调用   >存储过程就是具有名字一段代码,用来完成一个特定功能。   >创建存储过程保存在数据库数据字典。...  ②某些语句(例如:leave和iterate语句),需要用到标签 二、存储过程参数   存储过程可以有0个或多个参数,用于存储过程定义。...,...]]) ……   ②确保参数名字不等于列名字,否则在过程体,参数名被当做列名来处理 墙裂建议:   >输入值使用in参数;   >返回值使用out参数;   >inout参数就尽量少用

    2.9K20

    Mysql-2

    存储过程 我们常用操作数据库语言SQL语句执行时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能SQL语句集,经编译后存储在数据库,用户通过指定存储过程名字并给定参数...一、存储过程   存储过程(Stored Procedure)是大型数据库系统,一组为了完成特定功能SQL语句集,经编译后存储在数据库,用户 通过指定存储过程名字并给出参数(如果该存储过程带有参数...DELIMITER ; CALL proc_no_para(); 2、只带IN(输入参数)存储过程    表示该参数值必须在调用存储过程时指定,存储过程修改该参数值不能被返回,为默认值。...中最左边x个字符 LENGTH(s)返回字符串str字符数 LTRIM(str) 从字符串str中切掉开头空格 POSITION(substr,str) 返回子串substr字符串str第一次出现位置...返回date一年季度(1~4),如SELECT QUARTER(CURRENT_DATE); WEEK(date) 返回日期date为一年第几周(0~53) YEAR(date)

    2.6K50

    Mysql系列第十七讲 流程控制语句(高手进阶)

    当参数1为true时候,返回值1,否则返回值2。 示例 需求:查询t_user表数据,返回:编号、性别(男、女)、姓名。...,返回男女 创建函数: /*删除存储过程proc1*/ DROP FUNCTION IF EXISTS fun1; /*声明结束符为$*/ DELIMITER $ /*创建存储过程proc1*/ CREATE...示例 写一个存储过程,实现用户数据插入和新增,如果id存在,则修改,不存在则新增,并返回结果 /*删除id=7记录*/ DELETE FROM t_user WHERE id=7; /*删除存储过程...循环有3种写法 while:类似于javawhile循环 repeat:类似于javado while循环 loop:类似于javawhile(true)死循环,需要在内部进行控制.../*创建存储过程*/ CREATE PROCEDURE proc5(v_count int) BEGIN DECLARE i int DEFAULT 0; a:WHILE i<=v_count

    92453

    玩转Mysql系列 - 第18篇:流程控制语句(高手进阶)

    上一篇存储过程&自定义函数,对存储过程和自定义函数做了一个简单介绍,但是如何能够写出复杂存储过程和函数呢?...当参数1为true时候,返回值1,否则返回值2。 示例 需求:查询t_user表数据,返回:编号、性别(男、女)、姓名。...,返回男女 创建函数: /*删除存储过程proc1*/ DROP FUNCTION IF EXISTS fun1; /*声明结束符为$*/ DELIMITER $ /*创建存储过程proc1*/ CREATE...示例 写一个存储过程,实现用户数据插入和新增,如果id存在,则修改,不存在则新增,并返回结果 /*删除id=7记录*/ DELETE FROM t_user WHERE id=7; /*删除存储过程.../*创建存储过程*/ CREATE PROCEDURE proc5(v_count int) BEGIN DECLARE i int DEFAULT 0; a:WHILE i<=v_count

    1.4K30

    玩转Mysql系列 - 第17篇:存储过程&自定义函数详解

    关于自定义函数这块,若mysql内部自带一些函数无法满足我们需求时候,我们可以自己开发一些自定义函数来使用。 所以建议大家掌握mysql存储过程和自定义函数这块内容。...mysql默认结束符是分号。 上面存储过程向t_user表插入了2条数据。...1 row in set (0.00 sec) 上面的两个自定义变量@a、@b作为入参,然后存储过程内部进行了修改,又作为了返回值。...类似于java方法,但是必须有返回值。 创建函数 create function 函数名(参数名称 参数类型) returns 返回值类型 begin 函数体 end 参数是可选。...存储过程 函数 返回值 可以有0个或者多个 必须有一个 关键字 procedure function 调用方式 call select

    73230

    MySQL数据库,详解流程控制语句(二)

    创建存储过程: /*删除存储过程proc1*/ DROP PROCEDURE IF EXISTS proc1; /*s删除id=6记录*/ DELETE FROM t_user WHERE id=6;...,返回男⼥ 创建函数: /*删除存储过程proc1*/ DROP FUNCTION IF EXISTS fun1; /*声明结束符为$*/ DELIMITER $ /*创建存储过程proc1*/ CREATE...后⾯case可以省 略) 这种写法和1类似,⼤家⽤上⾯这种语法实现第1⽤法3个⽰例,贴在留⾔。...if结构 if结构类似于java if..else if...else语法,如下: if 条件语句1 then 语句1; elseif 条件语句2 then 语句2; ... else 语句n;...示例 写⼀个存储过程,实现⽤户数据插⼊和新增,如果id存在,则修改,不存在则 新增,并返回结果 /*删除id=7记录*/ DELETE FROM t_user WHERE id=7; /*删除存储过程

    38120

    不懂或不知MySQL游标,你可以进来看看

    游标(cursor)是一个存储MySQL服务器上数据库查询, 它不是一条SELECT语句,而是被该语句检索出来结果集。存储了游 标之后,应用程序可以根据需要滚动或浏览其中数据。...注意:MySQL游标可以用于 存储过程,函数,触发器,事件 2.游标特性 数据库也可以选择不复制结果集 不可更新 游标只能向一个方向行进,并且不可以跳过任何一行数据。...,就可以调用该存储过程了 CALL PROC1(); 得到结果: 这里肯定有小伙伴好奇,customers表里明明有7条记录,为什么只显示了1条记录?...CREATE PROCEDURE PROC2() BEGIN -- 定义两个存放结果变量 DECLARE FLAG INT DEFAULT 0; DECLARE NAME VARCHAR...,并查询cus表里数据 CALL PROC2();SELECT * FROM cus; 结果: 结果与customers里一致,但是这些结果是循环一条一条往下移动过程插入,即这个循环执行了7

    10.9K270

    MySQL存储过程

    首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储系统表执行计划。而批处理Transaction-SQL语句每次运行时都要进行编译和优化,速度相对要慢一些。...MySQL存储过程 存储过程是数据库一个重要功能,MySQL 5.0以前并不支持存储过程,这使得MySQL应用上大打折扣。...MySQL存储过程参数用在存储过程定义,共有三种参数类型,IN,OUT,INOUT: IN参数值必须在调用存储过程时指定,存储过程修改该参数值不能被返回,为默认值 OUT:该值可在存储过程内部被改变...PROCEDURE [过程1[,过程2…]] 从MySQL表格删除一个或多个存储过程。...返回substring首次string中出现位置,不存在返回0 LCASE (string2 ) //转换成小写 LEFT (string2 ,length ) //从string2左边起取length

    13.7K30

    Server层表级别对象字典表 | 全方位认识 information_schema

    MySQL 5.7.2之前,ACTION_ORDER列值总是0,因为在这之前版本,具有相同EVENT_MANIPULATION和ACTION_TIMING值触发器一个表只能有一个。...(不包括用户自定义函数UDF) 该表信息与“mysql.proc记录信息相对应(如果该表中有值的话) 该表为InnoDB引擎临时表 下面是该表存储信息内容 admin@localhost...:如果存储程序为函数,则该字段为返回数据类型值,如果为存储过程,则该字段为空 ROUTINE_BODY:存储程序主体内容,总是为"SQL" ROUTINE_DEFINITION:存储程序具体定义...如果mysql.proc.language ='SQL',则EXTERNAL_LANGUAGE字段值为NULL,否则,EXTERNAL_LANGUAGE字段值和mysql.proc.language值相同...这些参数信息与mysql.procparam_list列记录内容类似 该表为InnoDB引擎临时表 下面是该表存储信息内容 admin@localhost : information_schema

    1K20
    领券