MySQL 삽입(While Loop 포함)
MySQL 데이터베이스에 많은 레코드를 생성하려고 합니다.이것은 일회성 생성이므로 저장 프로시저를 만들려고 하지 않습니다.여기 내 코드가 있습니다.
BEGIN
SET i = 2376921001;
WHILE (i <= 237692200) DO
INSERT INTO `mytable` (code, active, total) values (i, 1, 1);
SET i = i+1;
END WHILE;
END
오류는 다음과 같습니다.
[쿼리 1의 오류] SQL 구문에 오류가 있습니다. 'SET i = 2376921001'에 가까운 구문을 사용하려면 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. (i <= 237692200) 삽입하기
coupon
(2호선의 couponCod' 실행 중지!
저는 같은 결과를 가진 Declate를 시도해 보았습니다.아래 코드:
BEGIN
DECLARE i INT unsigned DEFAULT 2376921001;
WHILE (i <= 237692200) DO
INSERT INTO `mytable` (code, active, total) values (i, 1, 1);
SET i = i+1;
END WHILE;
END
제가 시도한 또 다른 것은 i가 아닌 @i를 사용하는 것입니다.같은 오류.누가 내가 뭘 잘못하고 있는지 볼 수 있습니까?
drop procedure if exists doWhile;
DELIMITER //
CREATE PROCEDURE doWhile()
BEGIN
DECLARE i INT DEFAULT 2376921001;
WHILE (i <= 237692200) DO
INSERT INTO `mytable` (code, active, total) values (i, 1, 1);
SET i = i+1;
END WHILE;
END;
//
CALL doWhile();
사용할수없습니다WHILE
예를 들어 저장 프로시저 외부에 있는 동안 MYSQL Declarate는 참조하십시오.
코드를 저장된 절차에 넣어야 합니다.예:
CREATE PROCEDURE myproc()
BEGIN
DECLARE i int DEFAULT 237692001;
WHILE i <= 237692004 DO
INSERT INTO mytable (code, active, total) VALUES (i, 1, 1);
SET i = i + 1;
END WHILE;
END
Fiddle: http://sqlfiddle.com/ #!2/a4f92/1
또는 다음 목록을 생성합니다.INSERT
원하는 프로그래밍 언어를 사용하는 문장. 한 번만 작성해도 좋습니다.예를 들어, 배시 원라이너는 다음과 같습니다.
for i in {2376921001..2376921099}; do echo "INSERT INTO mytable (code, active, total) VALUES ($i, 1, 1);"; done
그런데, 번호를 잘못 입력하셨네요. 237692001은 10자리이고, 237692200은 9자리입니다.
언급URL : https://stackoverflow.com/questions/26981901/mysql-insert-with-while-loop
'programing' 카테고리의 다른 글
Swift에서 두 값 사이의 숫자를 "clamp"하는 표준 방법 (0) | 2023.09.12 |
---|---|
Spring HATEOAS versus Spring Data Rest (0) | 2023.09.12 |
도커-허브를 사용하지 않고 도커-이미지를 공유하는 방법? (0) | 2023.09.12 |
다른 것이 가장 많이 이루어질 때 if-ellif-ellif-ellif-ellip 진술을 하는 가장 효율적인 방법은? (0) | 2023.09.12 |
최대 절전 모드:JPA를 통해 MariaDB 커밋하기 (0) | 2023.09.12 |