0
작동하는 저장 프로 시저가 있지만 하이픈이있는 값을 전달하면 오류가 발생합니다.값이 하이픈 인 MySQL 저장 프로 시저
나는 call create ('server-v01', 555)와 같은 값으로 내 프로 시저를 호출한다. 다음과 같은 오류가 발생합니다 :
ERROR 1064 (42000) : SQL 구문에 오류가 있습니다. 라인에 가까운 '-v01'를 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 한
내 절차는 다음과 같다 :
DELIMITER $$
CREATE PROCEDURE ct(tname varchar(20), sessionsnum INT(11))
BEGIN
DECLARE maxnum INT;
SET @s = CONCAT('INSERT INTO sessions_poll (server_name,sessions_num) VALUES(''',tname,''',',sessionsnum,')');
PREPARE stm FROM @s;
EXECUTE stm;
SET @s = CONCAT('DROP TABLE IF EXISTS ', tname);
PREPARE stm FROM @s;
EXECUTE stm;
SET @s = CONCAT('CREATE TABLE ', tname, ' (num INT, max INT)');
PREPARE stm FROM @s;
EXECUTE stm;
SELECT @maxnum:=max(sessions_num) INTO maxnum FROM sessions_poll WHERE server_name=tname AND DATE(ts)=CURDATE();
SET @s = CONCAT('INSERT INTO ', tname, ' (num,max) VALUES (', sessionsnum,',',maxnum,')');
PREPARE stm FROM @s;
EXECUTE stm;
END $$
DELIMITER ;
내 문제는 내가 처리 할 수있는 방법이다 변수에 하이픈이 포함되어 있습니까?
그게 효과가 있습니다. 고맙습니다. 내 테이블 이름에 hypens를 사용하는 것이 가장 좋은 아이디어는 아니지만 당분간해야 할 일입니다. 다시 한번 감사드립니다. –
여러분을 환영합니다. –