2011-05-24 156 views
0

我有一个简单的存储过程,它将记录插入到表中的四个字符字段中。下面是MySQL存储过程错误

CREATE PROCEDURE dowhile() 

BEGIN 

DECLARE I INT DEFAULT 5 

v1loop: WHILE I < 10000 DO 

    INSERT INTO TestTable1(A,B,C,D) 

    SELECT CONCAT(I,'A'), CONCAT(I,'B'), CONCAT(I,'C'), CONCAT(I,'D') 

    SET I = I + 1 

END WHILE v1loop 

END; 

在网上查的过程 - 有没有免费的MSSQL到MySQL SQL转换工具

错误是 - SQL语法错误插入 - SELECT语句

我已经检查语法这似乎是正确的。

任何指针都是有帮助的。

回答

2

事实上,你只需要添加一些分号并改变MySQL的默认分隔符。这需要完成,因为我们在SQL中使用SQL。

DELIMITER $$ 

CREATE PROCEDURE dowhile() 

BEGIN 

DECLARE I INT DEFAULT 5; 

v1loop: WHILE I < 10000 DO 

    INSERT INTO TestTable1(A,B,C,D) 

    SELECT CONCAT(I,'A'), CONCAT(I,'B'), CONCAT(I,'C'), CONCAT(I,'D'); 

    SET I = I + 1; 

END WHILE v1loop; 

END$$ 

DELIMITER ; 

刚刚在我的MySQL服务器上进行了测试。

+0

非常感谢。你节省了几个小时的时间:) – Siva 2011-05-24 14:18:42