programing

MySQL/MariaDB: 케이스 스테이트먼트를 사용하여 프로시저를 만들 수 없습니다.

goodsources 2022. 10. 30. 11:11
반응형

MySQL/MariaDB: 케이스 스테이트먼트를 사용하여 프로시저를 만들 수 없습니다.

MySQL의 케이스 스테이트먼트에 어려움을 겪고 있습니다.프로시저에서 사용하고 싶지만 프로시저를 작성하려고 할 때마다 오류가 발생합니다(#1064: SQL 구문에 오류가 있습니다.MariaDB 서버 버전에 대응하는 매뉴얼에서 4행의 near " 를 사용하는 올바른 구문을 확인하십시오).케이스스테이트먼트와는 무관한 다른 실수를 피하기 위해 가능한 한 쉽게 절차를 진행했습니다.제가 지금 시도하고 있는 것은 다음과 같습니다.

drop PROCEDURE if EXISTS test;
create PROCEDURE test()
BEGIN
CASE
when true THEN INSERT INTO testtable VALUES (DEFAULT);
end case;
END

어디가 잘못됐는지 정말 모르겠어요.설명서에 따르면 sytax는 다음과 같습니다.

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list] 
END CASE

나도 똑같이 한 것 같아.누가 좀 도와줬으면 좋겠어요.저는 지금 몇 시간 동안 고생하고 있어요.PHPMyAdmin과 함께 XAMPP를 사용하고 있습니다.

딜리미터를 변경해야 합니다.그렇지 않으면 프로시저 내의 스테이트먼트가 아닌 스토어드 프로시저가 언제 종료되는지 알 수 없습니다.

콘솔에서 실행하는 경우:

drop PROCEDURE if EXISTS test;

delimiter $$

create PROCEDURE test()
BEGIN
CASE
when true THEN INSERT INTO testtable VALUES (DEFAULT);
end case;
END$$

delimiter ;

phpmyadmin 내에서 실행하는 경우 GUI에서 딜리미터를 지정해야 합니다.

phpmyadmin

언급URL : https://stackoverflow.com/questions/37466536/mysql-mariadb-cant-create-a-procedure-using-the-case-statement

반응형