database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29326 게시물 읽기
No. 29326
프로시저 질문입니다.
작성자
흥흥흥
작성일
2009-09-23 19:34
조회수
5,747

프로시저를 전혀 몰라서요..


Mysql 매뉴얼을 보고 있는데 이해가 잘 안가는 부분이 있어서 질문드립니다.


매뉴얼 내용은 아래와 같습니다.


------------------------------------------------------------------------------------------------------------------------

루틴이 호출되면, 하나의 임플리시트(implicit) USE db_name  이 실행된다(그리고 루틴이 종료되면 마침). 

스토어드 루틴내의 USE 명령문은 허용되지 않음.

데이터 베이스 이름으로 루틴 이름을 검증할 수 있다. 이것은 현재의 데이터 베이스 내에는 없는 루틴을 언급하기 위해 사용될 수도 있다. 예를 들면, test 데이터 베이스와 관련된 스토어드 프로시저 p 또는 함수 f를 호출하기 위해서는, CALL test.p() or test.f() 를 입력하면 된다 . 

------------------------------------------------------------------------------------------------------------------------


이 말이 혹시 제가 이해하는게 맞나 해서요..


일반 쿼리의 경우 use DATABASE; Select * from table;

또는 Select * from DATABASE.table; 


이렇게 사용 가능하잖아요.


그런데 프로시저 p()를 사용 할 경우 

use DATABASE;  CALL p(); 이것을 사용 할 수 없고 

CALL DATABASE.p() 이렇게 사용 가능하단 것인가요?


사소한것에부터 혼란이 시작되네요.ㅠㅠ

이 글에 대한 댓글이 총 1건 있습니다.

사용할 수 없다는 얘기가 아니라, 암묵적인 USE 가 사용된다는 얘기겠죠. 

즉, CALL DBNAME.PROCEDURENAME 인데, DBNAME을 생략해도 현재 선택된 DB 이름으로 USE DBNAME 구문이 실행되는 것과 같다고 보시면 되지 않을까요.

박현우(lqez)님이 2009-09-28 18:28에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29335두개의 디비시스템에서 트리거 연동이 가능할까요?
김선아
2009-09-25
6288
29334쿼리 분석좀 해주세요 [1]
최동성
2009-09-24
6059
29333적당한 설정인지 조언 부탁드립니다.
박찬영
2009-09-24
6752
29326프로시저 질문입니다. [1]
흥흥흥
2009-09-23
5747
29325연속된 값을 찾는게 가능한가요?? [3]
Deck
2009-09-22
7412
29312숫자를 합치려면 어떻게 하나요? [2]
Deck
2009-09-18
6299
29311euckr 캐릭터셋 변경질문입니다. [1]
질문
2009-09-18
7425
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다