while문 해보려는데..
나와같은 의문을 가지신 분
프로시저 꼭 만들어서 써야돼?
https://stackoverflow.com/questions/12954095/mysql-declare-while-outside-stored-procedure-how
mysql DECLARE WHILE outside stored procedure how?
I fairly new to mysql but have MS SQL experience. Is it possible to declare variables and use while statement outside stored procedure? I only found examples where guys doing like this 1. proced...
stackoverflow.com
안된데 따흑.
https://dev.mysql.com/doc/refman/8.0/en/sql-compound-statements.html
^공식문서...
방금 스택오버 따라서 코드 처보는데
DELIMITER
이거 맨앞에 넣어야 빨간줄 안뜨네
너 뭐야..
공식문서가 말하길,,
"기본적으로 mysql 자체는 세미콜론을 명령문 구분 기호로 인식하므로 mysql 이 전체 저장 프로그램 정의를 서버에 전달하도록 하려면 구분 기호를 일시적으로 재정의해야 합니다.
mysql 구분 기호 를 재정의하려면 delimiter명령을 사용하십시오. //전체 정의를 단일 명령문으로 서버에 전달한 다음 ;프로시저를 호출하기 전에 로 복원할 수 있도록 구분 기호가 변경됩니다 . 이렇게 하면 프로시저 본문에 사용된 구분 기호가 mysql 자체 ; 에서 해석되지 않고 서버로 전달될 수 있습니다."
어 그렇구나..(이해못함)
https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
식 사이를 구분지어주는 거같음
아니!! 근데!!! 아무것도 안나와
-> 계속 생기고 뭐지
세미콜론으로 끝내려는데도 안됨
아하!
MySQL 콘솔창은 쌍반점(;)이 입력되면 어떤 경우에서건 일단 쌍반점(;) 이전 단계까지 명령문을 실행하게 됩니다.
구분 문자(;) 변경하기
명령분이 완성되지 않은 상태에서 실행되면 곤란합니다. 저장 프로시저에서 END를 입력하고 나서 CREATE PROCEDURE 명령이 실행되도록 환경을 변경해야 합니다.
그러려면 저장 프로시저를 작성하기 전에 구분 문자를 쌍반점(;)이 아닌 다른 문자로 변경해 둡니다. 일반적으로는 //을 사용합니다.
구분 문자를 //으로 변경할 때에는 DELIMITER 명령을 사용합니다.
맨 마지막의 DELIMITER ;는 구분 문자를 원래대로 되돌려 놓는 명령입니다. 구분 문자를 쌍반점(;)으로 되돌려 놓는 것을 잊지 않도록 합니다.
출처: https://recoveryman.tistory.com/186 [회복맨 블로그] 회복맨, 당신은 최고의 정리맨이자 설명맨입니다. 짱짱~
DELIMITER 가 구본문자를 바꾸는 명령어구나
구본문자를 세미콜론에서 //이걸로 바꿔놓고
안된다고 하고 있었구나....ㅋㅋㅋㅋㅋㅋ
DELIMITER //
create procedure pro()
begin
select name from sequence;
select deposit_date from sequence;
end
//
DELIMITER ;
call pro;
삭제하고 다시 만들어봐야지
drop procedure if exists 프로시저 이름;
임의로 값 넣어놓음
DELIMITER //
구본문자//로 바꾸고
create procedure pro(d int)
프로시저 pro만들고 int형 인수d들어가게끔 사용할거임
begin
시작
select * from sequence where interest_amount < d;
다가져와 seuquence 테이블에서 interest_amount가 d보다 작은 것중에서
end
끝
//
프로시저 끝
DELIMITER ;
구본문자 다시 ;로 바꿈
call pro(3);
프로시저 실행. 인수에 3넣고 (3보다 작은 interest_amount 가져올거임)
이제 다시 while문 해봐야지..
https://recoveryman.tistory.com/186
[MySQL & PHP] 12장 저장 프로시저 활용하기
정리 1. 저장 프로시저의 의미와 작성 방법 1. 저장 프로시저란? 1.1 이용할 수 있는 버전 저장 프로시저를 학습하기 전에 MySQL의 버전을 확인하도록 합니다. 저장 프로시저는 MySQL 버전 5.0 이상에
recoveryman.tistory.com
이글은 보고 또 봐야지.. 뒤에는 다 안해봄!
'데이터베이스 > mySQL' 카테고리의 다른 글
한시간씩 이자율 넣기 while문 사용, update,order by limit (0) | 2022.05.12 |
---|---|
mysql while 여러시도.. (0) | 2022.05.10 |
mysql 변수설정 set, declare 사용하려고 하는데...흠.. (0) | 2022.05.10 |
mysql 기본 명령어 (0) | 2022.05.10 |
mysql 이자액 계산기 식 만들기 (값 띄우기select,넣기insert,삭제TRUNCATE) (0) | 2022.05.09 |