Я запускаю следующую команду в PHPMyAdmin:
DELIMITER #
CREATE PROCEDURE addid()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a,b FLOAT DEFAULT 0;
DECLARE c,d INT DEFAULT 0;
DECLARE cur1 CURSOR FOR SELECT time FROM results;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a;
IF done THEN
LEAVE read_loop;
IF a - b > 60 THEN
SET c = c+1;
ELSE
UPDATE results SET uid=c WHERE time=a;
END IF;
SET b = a;
END LOOP;
CLOSE cur1;
END#
DELIMITER ;
CALL addid();
Может быть, это будет делать то, что я хочу, а может и нет.Но я не знаю, потому что я не могу это назвать.
Я получаю следующую ошибку
#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 'LOOP; CLOSE cur1; END# call addid()' at line 20
Иногда, в зависимости от того, как я его настраиваю, я могу запустить создание.но затем он не может найти хранимую процедуру, как будто ее просто не делают.
Я впервые использую хранимые процедуры, так что это, вероятно, что-то глупое.Я использую MySQL 5.0.7.