Мне нужно создать временную таблицу в одной процедуре.
Теперь мои шаги были:
1. DROP ВРЕМЕННОЕ ТАБЛИЦА если СУЩЕСТВУЕТ
2. CREATE TABLE ВРЕМЕННЫЙ
3. Сделайте что-нибудь с таблицей
4. DROP TABLE ВРЕМЕННЫЙ если СУЩЕСТВУЕТКак легко выбрать временную таблицу в MySQL?
Я не хочу создайте временную таблицу каждый раз, когда я вызываю процедуру.
Я просто хочу усечь временную таблицу, но как выбрать некоторые данные в существующую временную таблицу?
Как сделать процедуру удара быстрее?
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