IT story

MySQL에서 일괄 삽입을 수행하는 방법

hot-time 2020. 7. 11. 09:36
반응형

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();

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/tjvbtupd.htm


Insert into table(col1,col2) select col1,col2 from table_2;

다음으로 이동하십시오 : http://dev.mysql.com/doc/refman/5.5/en/insert.html


데이터 인 파일 쿼리로드가 훨씬 더 나은 옵션이지만 godaddy와 같은 일부 서버는 공유 호스팅 에서이 옵션을 제한하므로 두 가지 옵션 만 남으면 하나의 반복 또는 일괄 삽입마다 레코드를 삽입하지만 쿼리를 초과하면 일괄 삽입에 문자 제한이 있습니다 mysql에 설정된 문자 수 다음 쿼리가 중단됩니다. 따라서 일괄 삽입을 사용하여 청크에 데이터를 삽입하는 것이 좋습니다. 이는 데이터베이스로 설정된 연결 수를 최소화합니다.


mysql을 사용하면 한 번에 여러 행을 삽입 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/5526917/how-to-do-a-batch-insert-in-mysql

반응형