mysql - 带 IN 和 OUT 参数的存储过程

标签 mysql stored-procedures

祝大家一切顺利!

需要有关存储过程的帮助。创建过程时出现以下错误。非常感谢任何帮助。

error: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE PROCEDURE regi_email (IN email VARCHAR(255), counti OUT INT)

BEGIN

' at line 3

我的程序如下:

DELIMITER $$

USE hsiedwzw_booking

CREATE PROCEDURE regi_email (IN email VARCHAR(255), counti OUT INT)

BEGIN

DECLARE bContinue INTEGER;

SELECT COUNT(*) INTO bContinue FROM parent_reg_email WHERE reg_email =email;

    IF bContinue=0;

THEN SET @counti=1;

    ELSE SELECT COUNT(*) INTO bContinue FROM ets_bookings WHERE c_email =email;

         IF bContinue=0;

         SET @counti=2;


         ELSE SET @counti=3;

END IF;

END
$$
DELIMITER;

最佳答案

此行有一个错误,需要更改为:

CREATE PROCEDURE regi_email (IN email VARCHAR(255),OUT counti  INT)

编辑:

#DEFINER=`root`@`localhost`  is for your server ;;

USE hsiedwzw_booking;

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `activeFor_accounthead`(IN email VARCHAR(255),OUT  counti INT)

BEGIN

DECLARE bContinue INTEGER;

SELECT COUNT(*) INTO bContinue FROM parent_reg_email WHERE reg_email =email;

    IF bContinue=0;

THEN SET @counti=1;

    ELSE SELECT COUNT(*) INTO bContinue FROM ets_bookings WHERE c_email =email;

         IF bContinue=0;

         SET @counti=2;


         ELSE SET @counti=3;

END IF;
END$$
DELIMITER ;

关于mysql - 带 IN 和 OUT 参数的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48071413/

相关文章:

Mysql日期查询查找当前是否在两个日期之内?

sql-server - N是什么意思?

sql - 检查选择查询在 SQL Server 存储过程中是否有结果

sql - 将复合类型的数组传递给存储过程

mysql - MySQL存储过程失败,错误代码为2013(查询过程中与MySQL服务器的连接丢失)

sql - EXECUTE AS OWNER 的存储过程是否可以有效替代从第三个模式表中选择的 View ?

mysql - SELECT … WHERE 没有 FROM 抛出语法错误

mysql - 查找 2 个给定日期之间的结果

php - 在 PHP 中打印信息丰富、格式正确的 mysql 错误

php - 使用 Microsoft Drivers for PHP for SQL Server 在 Ubuntu 16.04 上的 PHP 7.2 中连接到 SQL Server,在浏览器中工作,但在命令行中失败