MySQL(MariaDB) 루프 중
거기 안녕.
창고에 랙과 선반 위치가 있는 테이블을 업데이트하려고 합니다.15개의 랙이 있으며 각 랙에는 5개의 쉘프가 있습니다.선반이 더 생길 때를 대비해서 위치를 더 늘리기 위해 20번까지 순환시키고 있어요지금까지 torun을 사용해 본 순서는 다음과 같습니다만, 첫 번째 END IF 부근에서 구문 오류가 발생하고 있습니다.
제 진술은 다음과 같습니다.
drop PROCEDURE if exists updateLocations;
DELIMITER //
CREATE PROCEDURE updateLocations()
begin
DECLARE rack INT default 1;
DECLARE shelf INT default 1;
WHILE rack<21 DO
insert into tblStorageLocations values ("", rack, shelf);
IF (shelf=5, SET rack=rack+1, set rack=rack);
END IF;
IF (shelf<5, SET shelf=shelf+1, set shelf=1);
END IF;
END WHILE;
END;
//
DELIMITER ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IF;
IF (shelf<5, SET shelf=shelf+1, set shelf=1);
END IF;
END WHILE' at line 8
처리 중입니다.if
진술이 아닌 함수로 표현합니다.
drop PROCEDURE if exists updateLocations;
DELIMITER //
CREATE PROCEDURE updateLocations()
BEGIN
DECLARE rack INT default 1;
DECLARE shelf INT default 1;
WHILE rack < 21 DO
INSERT INTO tblStorageLocations
VALUES ('', rack, shelf);
IF shelf = 5 THEN
SET rack = rack + 1;
END IF;
IF shelf < 5 THEN
SET shelf = shelf + 1;
ELSE
SET shelf = 1;
END IF;
END WHILE;
END;
//
DELIMITER ;
언급URL : https://stackoverflow.com/questions/43289304/mysql-mariadb-while-loop
'programing' 카테고리의 다른 글
C/C++에서 메모리 부족 상황에 적절하게 대처하는 방법은 무엇입니까? (0) | 2022.09.24 |
---|---|
python에서 두 datetime 객체의 시간 차이를 찾으려면 어떻게 해야 합니까? (0) | 2022.09.24 |
file_get_contents()에는 타임아웃 설정이 있습니까? (0) | 2022.09.22 |
AES_Decrypt()가 늘 값을 반환합니다. (0) | 2022.09.22 |
MySQL에서 교차 (0) | 2022.09.22 |