私は1つの手順で一時テーブルを作成する必要があります。
今私の手順は以下の通りであった。
1. DROP TEMPORARY TABLE私はしたくないMySQLの一時テーブルを簡単に選択する方法は?
を存在する場合
2.テーブル
4. DROP TEMPORARY TABLEで何かをするTEMPORARY TABLE
3. CREATE存在する場合プロシージャを呼び出すたびに一時テーブルを作成します。
私はちょうど一時テーブルを切り捨てたいですが、既存の一時テーブルにいくつかのデータをどのように選択するのですか?
ブロー手順をより速く実行するにはどうすればよいですか?
DROP PROCEDURE IF EXISTS `test`;
DELIMITER ;;
CREATE PROCEDURE `test`(IN type INT)
begin
DECLARE done INT DEFAULT 0;
DECLARE total INT DEFAULT 0;
DECLARE min_1 INT DEFAULT 0;
DECLARE min_10 INT DEFAULT 0;
DECLARE min_30 INT DEFAULT 0;
DECLARE tmp INT DEFAULT 0;
DECLARE cursor1 CURSOR FOR SELECT TIMESTAMPDIFF(MINUTE,time1,time2) as dif FROM t_test ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
DROP TEMPORARY TABLE if EXISTS t_test;
CREATE TEMPORARY TABLE t_test AS (
SELECT optime as time1,dtime as time2
FROM tbmytest
WHERE thetpye = type);
OPEN cursor1;
REPEAT
FETCH cursor1 INTO tmp;
IF done = 1 THEN
close cursor1;
ELSE
SET total = total + 1;
IF tmp > 30 THEN
SET min_30 = min_30 + 1;
ELSEIF tmp > 10 THEN
SET min_10 = min_10 + 1;
ELSEIF tmp > -1 THEN
SET min_1 = min_1 + 1;
END IF;
END IF;
UNTIL done END REPEAT;
DROP TEMPORARY TABLE if EXISTS t_test;
SELECT min_1,min_10,min_30,total;
end;;
DELIMITER ;
なく、あなたのセッション終了 –
後、私はあなたが列を一時テーブルが使用され何が毎回 –
同じことを期待することができるかどうかわからないのMySQLが、自己破壊、通常は一時テーブルについて確認してください。 – Raptor