运行MySQL循环时出错

时间:2015-03-26 17:55:13

标签: mysql sql phpmyadmin

我正在尝试在phpMyAdmin中运行一个mysql循环,以便同时为多个产品添加价格记录。运行此查询时,我收到以下错误:

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第11行的“$$”附近使用正确的语法

知道为什么会这样吗?

DELIMITER $$
CREATE PROCEDURE doiterate()
BEGIN
DECLARE p1 INT Default 0;
  label1: LOOP
    SET p1 = p1 + 1;
    IF p1 < 44 THEN
        INSERT INTO `price`(`product`, `site`, `amount`)
        VALUES (p1,'10','12.99');
    END IF;
  END LOOP label1;
END $$

1 个答案:

答案 0 :(得分:0)

您有一些语法问题,需要在最终结束前结束循环。

DELIMITER $$
CREATE PROCEDURE doiterate()
BEGIN
DECLARE p1 INT Default 0;
  label1: LOOP
    if p1 = 44 then 
      LEAVE  label1;
    end if;

    INSERT INTO `price`
     (`product`, `site`, `amount`)
     VALUES 
     (p1,'10','12.99');
    SET p1 = p1 + 1;
  END LOOP; 
END$$

这是mysql cli中的测试

mysql> DELIMITER $$
mysql> CREATE PROCEDURE doiterate()
    -> BEGIN
    -> DECLARE p1 INT Default 0;
    ->   label1: LOOP
    ->     if p1 = 44 then 
    ->       LEAVE  label1;
    ->     end if;
    -> 
    ->     INSERT INTO `price`
    ->      (`product`, `site`, `amount`)
    ->      VALUES 
    ->      (p1,'10','12.99');
    ->     SET p1 = p1 + 1;
    ->   END LOOP; 
    -> END$$
Query OK, 0 rows affected (0.00 sec)