2011-05-25 145 views
2

我只是不斷收到錯誤1064.我搜索瞭如何做while循環然後聲明局部變量等,我沒有看到我做錯了什麼。我試圖沒有這個「;」我厭倦了將分隔符設置爲「|」能夠使用「;」作爲行之間的分隔符(我讀的東西somwhere那種說,可以做到這一點的呢?..)批量在MySQL中插入SQL查詢

我試圖做的是phpMyAdmin的查詢和我的MySQL版本是5.1.36

我不會解釋我在嘗試什麼,因爲我相信只需閱讀下面的查詢就可以輕鬆理解。

BEGIN 
DECLARE v1 INT DEFAULT 0; 
DECLARE v2 VARCHAR(10); 
WHILE v1 < 20 DO 
SET v2 = CONCAT('Test ', CAST(v1 AS CHAR(2))); 
INSERT INTO news(title,date, message) VALUES(v2, NOW(), v2); 
SET v1 = v1 + 1; 
END WHILE; 
END; 
+0

內你發佈你正在嘗試什麼使用?因爲有很多錯別字...... 1064錯誤信息的內容會有所幫助。 – 2011-05-25 23:41:27

+0

你是否在例程中運行上述語句?或作爲獨立的陳述。 – 2011-05-26 01:15:45

+0

作爲獨立的陳述。我並不想創建一個過程或函數。我試圖在我的數據庫中添加假信息來測試它。 – 2011-05-26 01:43:13

回答

0

MySql只允許在存儲程序中使用BEGIN...END標記的複合語句。

Docs

BEGIN ... END語法用於 編寫複合語句,它可以 出現存儲方案

0

變化

DECLAREv2 VARCHAR(10); 

DECLARE v2 VARCHAR(10); 
+0

我改正了這個問題,但要求澄清,如果這真的是問題或錯別字的一個簡單的例子... – 2011-05-25 23:42:03

+0

這只是我的問題中的一個錯字..它再次嘗試它,仍然無法正常工作。我得到的錯誤是:#1064 - 你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,在'DECLARE v1 INT DEFAULT 0;'附近使用正確的語法。 DECLARE v2 VARCHAR(10); WHILE v1 <20 DO'在第2行 – 2011-05-25 23:47:25