您好我寫了這MySQL的存儲過程,我不斷收到這個語法錯誤MySQL語法錯誤|變量=變量+整數
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@start := @start + 3600;
END WHILE;
@start = 1505469600;
' at line 42
這裏是我的存儲過程,我一直無法運行它又因爲語法錯誤所以它可能有一些問題。如果你發現任何問題,如果你能幫助我,這將會非常有幫助。
DELIMITER ;;
CREATE PROCEDURE insert_zone_time_range_data()
BEGIN
SET @start = 1505469600, @end = 1505483940;
WHILE @start < @end DO
WHILE @start < @end DO
INSERT INTO daily_stats_zone_visitors_time_range
(
day_epoch,
day_of_week,
time_range_hours,
venue_id,
visitors,
visitors_new
)
SELECT UNIX_TIMESTAMP(FROM_UNIXTIME(ts,'%Y-%m-%d')) AS day_epoch,
FROM_UNIXTIME(ts,'%W') AS day_of_week,
FROM_UNIXTIME(@start, '%h') + '-' + FROM_UNIXTIME(@end, '%h') AS time_range_hours,
venue_id,
COUNT(DISTINCT mac) AS visitors,
COUNT(id) AS visitors_new
FROM (
SELECT probe_request.venue_id,
probe_request.mac,
macs.id,
probe_request.ts
FROM probe_request
LEFT OUTER JOIN daily_stats_venue_mac_cache AS macs
ON probe_request.mac = macs.mac
AND probe_request.venue_id = macs.venue_id
AND macs.first_seen BETWEEN @start AND @end
WHERE probe_request.ts BETWEEN @start AND @end
GROUP BY probe_request.venue_id, probe_request.mac
) AS temp
GROUP BY venue_id;
@start = @start + 3600;
END WHILE;
@start = 1505469600;
@end = @end - 3600;
END WHILE;
END;
;;
我加入了DELIMITER ;;
到我的腳本的頂部,因爲我一直得到一個語法錯誤,當我設置我的變量,這似乎解決它。坦率地說,我不知道爲什麼,但現在似乎工作。
我沒有任何結果,你應該因爲錯誤,以便有關that.Thanks的幫助提前遺憾的是大加讚賞
讓它'SET @啓動= 1505469600 ;'。 '@end = ...'相同。 – fancyPants
'@start:= @start + 3600' – Blank
@Forward我已經做出了這個改變,我得到了同樣的錯誤 –