if 식 내부에서 저장 프로 시저를 사용하려고하지만 작동하지 않습니다.저장 프로 시저를 if 식으로 사용
if 문 앞에 저장 프로 시저로 초기화 된 변수의 문제를 해결할 수 있지만 한 줄로는 왜 그럴 수 없는지 알고 싶습니다. 여기
코드입니다 ".. # 1305 - 존재하지 않는 기능 (...)를 sp_IsTableExists"DELIMITER $$$$
DROP PROCEDURE IF EXISTS `sp_IsTableExists`
$$$$
CREATE PROCEDURE `sp_IsTableExists`(IN ptablename VARCHAR(50))
BEGIN
SELECT CASE WHEN (select COUNT(*)
from information_schema.COLUMNS
where TABLE_SCHEMA = DATABASE()
and TABLE_NAME = ptablename) = 0 THEN false ELSE true END AS exist FROM DUAL;
END;
$$$$
DROP PROCEDURE IF EXISTS `sp_IsTableCreated`
$$$$
CREATE PROCEDURE `sp_IsTableCreated`(IN ptablename VARCHAR(50))
BEGIN
IF (sp_IsTableExists(ptablename)) THEN
SELECT TRUE FROM DUAL;
ELSE
SELECT FALSE FROM DUAL;
END IF;
END;
$$$$
DROP PROCEDURE IF EXISTS `sp_IsTableCreated2`
$$$$
CREATE PROCEDURE `sp_IsTableCreated2`(IN ptablename VARCHAR(50))
BEGIN
IF ( SELECT CASE WHEN (select COUNT(*)
from information_schema.COLUMNS
where TABLE_SCHEMA = DATABASE()
and TABLE_NAME = ptablename) = 0 THEN false ELSE true END AS exist FROM DUAL) THEN
SELECT TRUE FROM DUAL;
ELSE
SELECT FALSE FROM DUAL;
END IF;
END;
$$$$
준다 "sp_IsTableCreated ('Utilisateur이')로 전화를"호출.
"sp_IsTableCreated2 ('Utilisateur') 호출이 정상적으로 작동합니다.
감사합니다.