반응형
내 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 서버 버전에 해당하는 설명서를 확인하십시오.
WHILE (i <= 237692200) DO
INSERT INTO coupon
(couponCod' at line 2
실행이 중지되었습니다!
동일한 결과로 Declare를 시도했습니다. 아래 코드 :
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를 사용하는 것입니다. 같은 오류입니다. 아무도 내가 뭘 잘못하고 있는지 볼 수 있습니까?
해결 방법
저장 프로 시저에 코드를 넣어야합니다. 예:
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
또는 원하는 프로그래밍 언어를 사용하여 INSERT
문 목록을 생성합니다. 일회성 생성의 경우 괜찮습니다. 예를 들어 다음은 Bash 한 줄짜리입니다.
for i in {2376921001..2376921099}; do echo "INSERT INTO mytable (code, active, total) VALUES ($i, 1, 1);"; done
그건 그렇고, 당신은 당신의 숫자에 오타를 만들었습니다. 2376921001은 10 자리, 237692200은 9입니다.
참조 페이지 https://stackoverflow.com/questions/26981901
반응형
'MySql' 카테고리의 다른 글
MySQL mysql-python 설치 오류 : 'config-win.h'포함 파일을 열 수 없습니다. (0) | 2020.11.28 |
---|---|
MySQL SQL에서 여러 열로 두 테이블을 조인하는 방법은 무엇입니까? (0) | 2020.11.28 |
MySQL MySQl 오류 # 1064 (0) | 2020.11.28 |
MySQL 단일 쿼리에 여러 행 삽입에 대한 MySQL ON DUPLICATE KEY UPDATE (0) | 2020.11.28 |
MySQL SQLite INSERT-ON DUPLICATE KEY UPDATE (UPSERT) (0) | 2020.11.28 |
댓글