2011-09-13 37 views
20
CREATE PROCEDURE dorepeat(IN p1 INT) 
BEGIN 
    DECLARE x INT DEFAULT 0; 
    REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT; 
END 

tôi nhận được một lỗi cú pháp:lỗi cú pháp khai báo mysql của biến

#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 '' at line 3

Nhưng đối với tôi, tất cả mọi thứ có vẻ là đúng. tôi thực sự không có bất kỳ đầu mối nào! ai cũng có thể giúp được?

nhờ

+3

Bạn nên chấp nhận câu trả lời vì nó đúng. – Adrian

Trả lời

-2

Tháo DECLARE, bạn sẽ có thể chỉ cần làm điều này:

SET @x = 0; 

Ngoài ra, các biến cần phải được bắt đầu bằng ký hiệu @

+0

Tôi vẫn nhận được lỗi chính xác tương tự – moris

+1

Không liên quan đến câu hỏi, nhưng điều này thực sự đã giúp tôi. – redolent

+2

Điều này sẽ tạo các biến được hiển thị cho toàn bộ phiên, bạn chỉ muốn khai báo chúng khi chúng chỉ hiển thị bên trong thủ tục được lưu trữ. – skiwi

38

Bạn cần phải tạm change the delimiter nên ứng dụng khách MySQL không nghĩ rằng bạn đã hoàn thành câu lệnh của mình khi thấy dấu chấm phẩy trên dòng 3:

DELIMITER // 

CREATE PROCEDURE dorepeat(IN p1 INT) 
BEGIN 
    DECLARE x INT DEFAULT 0; 
    REPEAT SET x = x + 1; UNTIL x > p1 END REPEAT; 
END// 

DELIMITER ; 
+0

hoạt động! cảm ơn rất nhiều. – moris

Các vấn đề liên quan