본문 바로가기
MySql

MySQL 임시 테이블은 공유 리소스입니까?

by 베이스 공부 2020. 10. 3.
반응형

임시 테이블을 사용하는 MySQL 저장 프로 시저가 있습니다. 내 테이블 이름이 'temp'이고 중간 데이터를 저장하는 데 사용한다고 가정합니다. 절차 시작시 생성되고 마지막에 드롭됩니다.

CREATE PROCEDURE p()
BEGIN

CREATE TEMPORARY TABLE \`temp\`(...);

INSERT INTO \`temp\` VALUES(...);

DROP TEMPORARY TABLE \`temp\`;

END;

문제는이 저장 프로 시저를 다른 사용자가 동시에 사용할 수 있다는 것이므로 이것이 문제 (즉, 임시 테이블에 삽입 된 데이터의 충돌)를 일으킬 수 있는지 알고 싶습니다. 즉, 임시 테이블은 동일한 SP에 대한 서로 다른 호출 내의 공유 리소스입니까?

 

해결 방법

 

아니요, 임시 테이블은 데이터베이스 연결 범위로 제한됩니다. 동일한 데이터베이스 연결 중에 프로 시저에 대한 후속 호출에서 임시 테이블을 사용할 수 있지만 다른 연결에서는 액세스 할 수 없습니다. 동일한 이름으로 테이블을 만들 수 있지만 각 임시 테이블은 독립적입니다. 연결을 닫으면 임시 테이블이 사라집니다.

 

참조 페이지 https://stackoverflow.com/questions/6567730

 

 

반응형

댓글