繁体   English   中英

MySQL 5中的查询语法错误过程?

[英]Query syntax error procedure in MySQL 5?

我评论说我对在MYSQL 5中创建过程有点陌生。

请支持我。

该错误显然在SELECT COUNT(*)中产生了我

MySQL代码:

DROP PROCEDURE IF EXISTS sp_est_ini_encuentro;

DELIMITER $$
CREATE PROCEDURE sp_est_ini_encuentro(IN cod_encuentro INTEGER)
    RETURNS VARCHAR
BEGIN

    DECLARE ind_pro_encuentro INTEGER;
    DECLARE est_ini_encuentro VARCHAR(80);

    SELECT COUNT(*) 
    INTO ind_pro_encuentro  
    FROM TABENCUENTRO enc
    WHERE SICODESTADO = 6 -- EN PROCESO
    AND DATE(TSFECCREACION) = DATE(NOW());

    IF ind_pro_encuentro = 0 THEN
        UPDATE TABDETENCUENTRO
        SET SICODESTADO = 6 -- EN PROCESO
        WHERE ICODENCUENTRO = cod_encuentro
        AND ICODPADDETENCUENTRO IS NULL
        AND ICODDETENCUENTRO IN (SELECT ICODDETENCUENTRO FROM (
                SELECT dtp.ICODDETENCUENTRO
                FROM TABDETENCUENTRO dtp
                WHERE dtp.ICODENCUENTRO = cod_encuentro
                AND dtp.ICODPADDETENCUENTRO IS NULL
                ORDER BY dtp.ICODDETENCUENTRO ASC LIMIT 1
            ) tmp
        );

        UPDATE TABENCUENTRO
        SET SICODESTADO = 6 -- EN PROCESO
        WHERE ICODENCUENTRO = cod_encuentro;    

        UPDATE TABENCUENTRO
        SET SICODESTADO = 9 -- PENDIENTE
        WHERE SICODESTADO = 1; -- ACTIVO
    ELSE
        SET est_ini_encuentro = 'El encuentro actual está en proceso.';
    END IF;

    RETURN est_ini_encuentro;               

END;
$$
DELIMITER;

错误SQL:

Query: CREATE PROCEDURE sp_est_ini_encuentro(IN cod_encuentro INTEGER) RETURNS VARCHAR BEGIN DECLARE ind_pro_encuentro INTEGER; DECLARE...

Error Code: 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 'VARCHAR
BEGIN

    DECLARE ind_pro_encuentro INTEGER;
    DECLARE est_ini_encuentr' at line 2

Execution Time : 0 sec
Transfer Time  : 0 sec
Total Time     : 0.001 sec

...................... .......................

要将参数传递给过程,则单词为IN而不是INT 改变这个

CREATE PROCEDURE sp_est_ini_encuentro(INT cod_encuentro INTEGER)

为了这

CREATE PROCEDURE sp_est_ini_encuentro(IN cod_encuentro INTEGER)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM