반응형
MySQL에서 배치 삽입하는 방법
테이블에 입력해야 하는 레코드가 1개 이상 있습니다.질의에서 이를 수행하는 가장 좋은 방법은 무엇입니까?루프를 만들고 반복할 때마다 레코드를 하나씩 삽입해야 합니까?아니면 더 좋은 방법이 있을까요?
MySQL 설명서
VALUES 구문을 사용하는 INSERT 문은 여러 행을 삽입할 수 있습니다.이를 수행하려면 각각 괄호로 묶고 쉼표로 구분된 여러 열 값 목록을 포함합니다.예:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
대부분의 경우 MySQL 클라이언트에서 작업하지 않으므로 적절한 API를 사용하여 삽입물을 함께 배치해야 합니다.
예: JDBC의 경우:
connection con.setAutoCommit(false);
PreparedStatement prepStmt = con.prepareStatement("UPDATE DEPT SET MGRNO=? WHERE DEPTNO=?");
prepStmt.setString(1,mgrnum1);
prepStmt.setString(2,deptnum1);
prepStmt.addBatch();
prepStmt.setString(1,mgrnum2);
prepStmt.setString(2,deptnum2);
prepStmt.addBatch();
int [] numUpdates=prepStmt.executeBatch();
데이터 파일 쿼리를 로드하는 것이 훨씬 더 좋은 옵션이지만 godaddy와 같은 일부 서버는 공유 호스팅에서 이 옵션을 제한합니다.따라서 남은 옵션은 2개뿐이며, 1개는 모든 반복 또는 배치 삽입에 대해 레코드를 삽입하는 것입니다.단, 쿼리가 mysql에서 설정된 이 문자 수를 초과하면 쿼리가 크래시됩니다.ggest insert data insert in chunks with batch insert. 데이터베이스와 확립된 접속 수를 최소화합니다.행운을 빈다 여러분
Insert into table(col1,col2) select col1,col2 from table_2;
mysql을 사용하면 여러 행을 동시에 삽입할 수 있습니다.
test_1 값에 삽입(24, 'B', '1990-12-07'), (25, 'C', '1990-12-08');
언급URL : https://stackoverflow.com/questions/5526917/how-to-do-a-batch-insert-in-mysql
반응형
'itsource' 카테고리의 다른 글
Java에서 Enum의 compareTo가 최종인 이유는 무엇입니까? (0) | 2022.09.18 |
---|---|
{...obj1, obj2}의 정확한 기능 (0) | 2022.09.18 |
변수를 인수로 정의되지 않음 또는 전달되지 않음으로 설정할 수 있습니까? (0) | 2022.09.18 |
yum을 통해 MariaDB 5.5에서 MariaDB 10으로 업그레이드 실패 (0) | 2022.09.18 |
개체를 어레이로 변환하려면 어떻게 해야 합니까? (0) | 2022.09.18 |