[英]Creating temporary Tables in stored Proceduresmysql
這是我在這里的第一篇文章,對於您期望的任何錯誤或缺少信息,我深感抱歉。 我試圖在過程中創建臨時表,但是當我嘗試執行過程時,我卻以某種方式不斷出錯(在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,所以也許是我的錯誤?)。
如果有任何幫助,我將非常感謝。
您不能在過程中間定義變量。 應該在開始之后。 因此,在程序開始時聲明所有變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.