source

Mysql 만들기 삽입 절차 문이 불완전합니다.

goodcode 2022. 9. 4. 15:01
반응형

Mysql 만들기 삽입 절차 문이 불완전합니다.

데이터베이스에 로그 절차를 작성하려고 합니다.다음 스테이트먼트를 사용하여 프로시저를 만듭니다.

 create procedure prc_wirte_log (
    in p_schema varchar(255),
    in p_item varchar(255),
    in p_message varchar(255)
)
begin
    insert into weather.log (`schema`, item, message) values (p_schema, p_item, p_message);
end;

에러가 발생하다Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 7 0.063 sec

왜? MySQL Workbench는Incomplet Statment: excepting ;를 누릅니다.

내가 뭘 할 수 있을까?

다중 스테이트먼트 절차(BEGIN 시 가정...END 있음)는 딜리미터 오버라이드를 요구하므로 딜리미터에 포함된 문이 절차 정의를 조기에 종료하지 않도록 해야 합니다.

일반적으로 다음과 같은 작업을 수행해야 합니다.

DELIMITER //

CREATE PROCEDURE blah()
BEGIN
   statements;
END//

DELIMITER ;

문서의 첫 번째 예는 이 점을 나타내고 있습니다(단, 이 페이지의 마지막 2개는 실수를 반복하고 있는 것 같습니다).

WorkBench 또는 이와 유사한 도구를 사용하는 경우 StoredProcedures를 마우스 오른쪽 버튼으로 클릭하고 Create Stored Procedure를 클릭하면 다음과 같은 기본 구조가 생성되며 로직을 작성하여 적용할 수 있습니다.마지막 문의 끝(END 직전)에 세미콜론을 사용합니다.

CREATE PROCEDURE `new_procedure` ()
BEGIN
select * from tasks;
END

언급URL : https://stackoverflow.com/questions/52412225/mysql-create-insert-procedure-statement-incomplete

반응형