CREATE DATABASE MYTEST; USE DATABASE MYTEST; delimiter // DROP PROCEDURE IF EXISTS proc_1 // CREATE PROCEDURE proc_1(OUT __nCount int) BEGIN SELECT COUNT(*) INTO __nCount FROM __tmp_xx; END// DROP PROCEDURE IF EXISTS proc_2 // CREATE PROCEDURE proc_2(OUT __nCount int) BEGIN DROP TEMPORARY TABLE IF EXISTS __tmp_xx; CREATE TEMPORARY TABLE __tmp_xx( nId int AUTO_INCREMENT PRIMARY KEY, wstrName nvarchar(256) NOT NULL ); INSERT INTO __tmp_xx (wstrName) VALUES ('xx'); CALL proc_1(__nCount); DROP TEMPORARY TABLE IF EXISTS __tmp_xx; END// DROP PROCEDURE IF EXISTS proc_3 // CREATE PROCEDURE proc_3() BEGIN DECLARE __nCount int; CALL proc_2(__nCount); SELECT __nCount; END// delimiter ; CALL proc_3(); CALL proc_3(); CALL proc_3(); CALL proc_3(); CALL proc_3(); CALL proc_3();