【发布时间】:2017-09-28 11:57:22
【问题描述】:
这是我在这里的第一篇文章,所以对于您期望的任何错误或遗漏信息,我深表歉意。
我试图在一个过程中创建一个临时表,但不知何故,当我尝试实施该过程时,我不断收到错误(DECLARE l_coin_base_id INT UNSIGNED 的#1064)。我删除了整个创建临时表部分并且它起作用了,所以我相信我的错误在这部分。
DELIMITER //
CREATE PROCEDURE UPDATE_HISTORY()`
MODIFIES SQL DATA
BEGIN
DECLARE l_c_pair INT DEFAULT (SELECT COUNT(*) + 1 FROM pairList);
DECLARE i INT DEFAULT 1;
DECLARE l_now INT UNSIGNED DEFAULT UNIX_TIMESTAMP() - 300;`
CREATE TEMPORARY TABLE temp_history ENGINE = MEMORY AS(
SELECT
active_pairList.base,
active_pairList.peer,
(active_history.highest_ask + active_history.highest_bid) / 2 AS price,
active_history.buy_volume,
active_history.sell_volume,
active_history.trade_volume
FROM
active_history
INNER JOIN
active_pairList
ON
active_history.sell_volume IS NOT NULL
AND active_history.buy_volume IS NOT NULL
AND active_history.trade_volume IS NOT NULL
AND active_history.timeStamp > l_now);
DECLARE l_coin_base_id INT UNSIGNED;
DECLARE l_coin_peer_id INT UNSIGNED;
DECLARE l_avg_price FLOAT UNSIGNED;
DECLARE l_sum_buy_volume FLOAT UNSIGNED;
DECLARE l_sum_sell_volume FLOAT UNSIGNED;
DECLARE l_sum_trade_volume FLOAT UNSIGNED;
-- doing smth. --
END //
DELIMITER ;
如果我尝试在语句中执行 CREATE TEMPORARY TABLE 部分,我能够创建临时表并正确创建它。谷歌也不知道。 (这也是我第一次使用 join 所以可能是我的错误?)。
如果有任何帮助,我将不胜感激。
【问题讨论】:
标签: mysql database stored-procedures