[英]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.