2015-02-12 83 views
0

我有這個疑問:SQL查詢無法找到的錯誤

DECLARE @i int = 0 
WHILE @i < 100 BEGIN 
    SET @i = @i + 1 
    INSERT INTO lottery (ticket, bought) VALUES (@i, false) 
END 

MySQL服務器

Error: Error Code: 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 'DECLARE @i int = 0 WHILE @i < 100 BEGIN
SET @i = @i + 1 INSERT INTO lott' at line 1

但它說的錯誤是,但不是哪裏。 我做錯了什麼?

回答

1

你應該把第一行是這樣的:

DECLARE @i int DEFAULT 0; 
0

我假設你要創建一個存儲過程。

如果您在存儲過程中有多個語句,則需要使用一個標準分隔符的半列來分隔它們,因此您必須在正面進行更改。即:

DELIMTER $$ 

CREATE PROCEDURE procedurename() 
BEGIN 
    DECLARE i INT; 
    SET i := 0; 
    WHILE i < 100 
    BEGIN 
     SET i := i + 1; 
     INSERT INTO lottery (ticket, bought) VALUES (i, 0); 
    END; 
END$$ 

DELIMITER ; 

注意,用戶變量是基於連接的,並在過程中聲明的變量僅在程序本身的範圍。