Hoe een batch invoegen in MySQL

Ik heb een groot aantal records die in een tabel moeten worden ingevoerd. Wat is de beste manier om dit in een query te doen? Moet ik gewoon een lus maken en één record per iteratie invoegen? Of is er een betere manier?


Antwoord 1, autoriteit 100%

Uit de MySQL-handleiding

INSERT-instructies die VALUES . gebruiken
syntaxis kan meerdere rijen invoegen. Te doen
dit, inclusief meerdere lijsten met kolommen
waarden, elk ingesloten binnen
haakjes en gescheiden door komma’s.
Voorbeeld:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

Antwoord 2, autoriteit 8%

Meestal werk je niet in een MySQL-client en moet je inserts in batches samenvoegen met behulp van de juiste API.

Bijvoorbeeld in 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


Antwoord 3, autoriteit 3%

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

Raadpleeg de MySQL-documentatie over de INSERT-verklaring


Antwoord 4, autoriteit 2%

Laad data infile-query is een veel betere optie, maar sommige servers zoals godaddy beperken deze optie op shared hosting, dus er zijn nog maar twee opties over, dan is één record invoegen op elke iteratie of batch-insertie, maar batch-insertie heeft zijn beperking van tekens als uw query overschrijdt dit aantal tekens dat is ingesteld in mysql, dan crasht uw query, dus ik raad aan om gegevens in brokken in te voegen met batch insert , dit zal het aantal verbindingen dat tot stand is gebracht met database minimaliseren. Veel succes jongens


Antwoord 5

mysql stelt u in staat om meerdere rijen tegelijk in te voegen INSERT handleiding

LEAVE A REPLY

Please enter your comment!
Please enter your name here

two × one =

Other episodes