I comment that I am a bit new to creating procedures in MYSQL 5.
我评论说我在MYSQL 5中创建程序有点新鲜。
Please support me in my case.
在我的情况下请支持我。
The error apparently generates me in the SELECT COUNT (*)
该错误显然在SELECT COUNT(*)中生成了我
MySQL code:
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;
Error SQL:
错误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
...................... ..............
...................... ..............
1 个解决方案
#1
0
To pass a parameter to a procedure the word is IN
not INT
. Change this
要将参数传递给过程,单词为IN而不是INT。改变这个
CREATE PROCEDURE sp_est_ini_encuentro(INT cod_encuentro INTEGER)
For this
为了这
CREATE PROCEDURE sp_est_ini_encuentro(IN cod_encuentro INTEGER)
#1
0
To pass a parameter to a procedure the word is IN
not INT
. Change this
要将参数传递给过程,单词为IN而不是INT。改变这个
CREATE PROCEDURE sp_est_ini_encuentro(INT cod_encuentro INTEGER)
For this
为了这
CREATE PROCEDURE sp_est_ini_encuentro(IN cod_encuentro INTEGER)